繁体   English   中英

使用htaccess限制从其他域访问zip文件

[英]restricting access to zip files from other domains with htaccess

我正在运行一个网站,该网站在一个文件夹中有许多zip文件。

我希望人们能够从网站上的下载链接(位于登录后面)访问这些文件,但我想确保不能通过直接键入zip文件的URL来下载它们。

因此,我认为这需要使用htaccess来完成-并拒绝所有规则(我的域除外)。 这是正确的吗?

现在,我的文件包含以下内容(我的实际域替换为“域”):

SetEnvIfNoCase Referer "^http://domain.com/" locally_linked=1
SetEnvIfNoCase Referer "^http://domain.com$" locally_linked=1
SetEnvIfNoCase Referer "^http://domain.com/" locally_linked=1
SetEnvIfNoCase Referer "^http://domain.com$" locally_linked=1
SetEnvIfNoCase Referer "^$" locally_linked=1
<FilesMatch "\.(zip)$">
  Order Allow,Deny
  Allow from env=locally_linked
</FilesMatch>

有人可以阐明为什么这可能行不通吗?

我在共享主机(Dreamhost)上:/-但是我认为这并没有多大区别。

谢谢。

您试图做的是防止热链接 您无法真正阻止它的发生,但是您可以拒绝其他引荐来源的下载。

将以下内容添加到您的.htaccess文件中,用您的域替换example.com 如果要保护其他文件格式,请在标有zip的位置添加它们,例如(zip|rar)

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)example.com/.*$ [NC]
RewriteRule \.(zip)$ - [F]

如果您要提供其他内容(例如说您必须先登录的页面),请使用:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)example.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ http(s)?://www.example.com/alternate.html [R,L]

我有类似的东西,但使用mod_rewrite并使用此代码

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]
RewriteRule \.(zip)$ - [NC,F,L]

您可以使用标头执行此操作:

// set example variables
$filename = "file_to_download.zip";
$filepath = "/var/www/domain/path_to_download/";

// http headers for zip downloads
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"".$filename."\"");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filepath.$filename));
ob_end_flush();
@readfile($filepath.$filename);

在此示例中,您可以添加更多登录名,例如用户登录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM