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也没有改变任何内容。 :(
答案 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} ^ $如果该部分给你的用户问题。
享受未来的沮丧民众。