重写zip文件的规则不起作用

时间:2018-02-02 07:25:18

标签: apache .htaccess

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https://(www\.)website.com/.*$ [NC]
RewriteRule \.(gif|jpg|jpeg|bmp|zip|rar)$ - [F]

我已经尝试过这个以及它的每个变体,在我的httpd.conf文件中,我的ssl.conf文件和我的.htaccess,在两次检查之间清除我的缓存。无论我做什么,这个指令都被忽略,没有错误日志。以下重写规则在我的httpd.conf文件的尾端没有问题

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

我当然会尝试使用http,https,http(s)等。

这里发生了什么?

到目前为止,我没有取得任何进展。

我能够使用

完全阻止对拉链的访问
<FilesMatch ".zip">
    Order Allow,Deny
    Deny from All
</FilesMatch>

但是从我的服务器访问拉链至关重要。不幸的是,将它们放在webroot之外并用PHP提供它们也不是这种情况下的选择。我知道这是最糟糕的一种热链接保护,但我非常想要这一点,似乎无法让这个简单的Rewrite工作。任何地方都没有错误......

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{SERVER_NAME}%{HTTP_REFERER} !^(.*)https?://\1/
RewriteRule \.(js|css|png|jpg|zip) - [R=404,L]

另外,做了,不做,工作......

SetEnvIfNoCase Referer "^https://www\.website\.com/" banimages=1
SetEnvIfNoCase Referer "^https://website\.com/" banimages=1
SetEnvIfNoCase Referer "^$" banimages=1
<FilesMatch "\.(gif|png|jpe?g|zip)$">
  Order Allow,Deny
  Allow from env=banimages=1
</FilesMatch>

此ALSO无效,只是完全阻止了访问。试过http和https。

仍未改变。无论我做什么,我都无法让这个SIMPLE重写器工作,没有错误日志,重启时没有语法错误,nadda。

有人必须对此有所了解。

通过我的整个httpd.conf和ssl.conf文件,发现什么都不应该阻止这个......

在我的配置中将AllowOverride的所有实例更改为All也没有改变任何内容。 :(

1 个答案:

答案 0 :(得分:0)

这花了太长时间。最后一次&lt; /虚拟主机&GT;在ssl.conf中添加标记

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

显然使用您的域名重新搜索website.com。这将阻止人们从外部网站进行热链接,并且空白引荐者(人们访问www.website.com/image.zip),你可能会或可能不想要,删除RewriteCond%{HTTP_REFERER} ^ $如果该部分给你的用户问题。

享受未来的沮丧民众。