我们需要阻止有人在浏览器中输入 URL 后直接访问我们网站上的文件。我使用 htaccess 文件实现了此功能,在 IE 和 Safari 中运行正常,但出于某种原因,Firefox 无法配合。我认为这与 Firefox 报告引荐来源的方式有关。
这是我在.htaccess 文件中的代码。
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^http://(my\.)?bigtimbermedia\.com/.*$ [NC]
RewriteRule \.(swf|gif|png|jpg|doc|xls|pdf|html|htm|xlsx|docx)$ http://my.bigtimbermedia.com/ [R,L]
如果您想看一个例子,请先尝试访问这个... http://my.bigtimbermedia.com/books/bpGreyWolvesflip/index.html
它可以在所有浏览器中正确地阻止它。
现在,如果您访问此 URL 并单击链接,它可以在 IE 和 Safari 中运行,但 Firefox 会卡住并且似乎陷入了循环。
有什么想法可以让它在 Firefox 中工作吗?谢谢!
答案1
你能用吗
RewriteCond %{HTTP_REFERER} !^%{HTTP_HOST}$ [NC]
那么您是否可以匹配机器所认为的主机?
答案2
重写条件 %{HTTP_REFERER} !^http://(我的.)?bigtimbermedia.com/.*$[数控]
在没有测试的情况下 - 你的重写规则看起来有点奇怪 - 我会通过 paros 或 fiddler 运行它,看看 Firefox 发送的请求和 IE 或 Opera 或其他发送的请求之间有什么区别,以及你的系统实际上发回的重定向是什么。