我试图使用mod.rewrite拒绝直接访问我的网络服务器上的文件,例如http://domain.tld/reports/imareport.pdf或http://domain.tld/img/img1.png,我已经在这个问题上使用了答案:
(htaccess) How to prevent a file from DIRECT URL ACCESS?
该页面建议像这样使用mod.rewrite:
RewriteEngine on
RewriteRule \.(png|pdf|htm)$ - [F]
以这种方式使用mod.rewrite可以很好地拒绝访问PDF,但是通常包含在页面中的其他文件(例如images和css)不仅被阻止直接访问,而且在网页上使用时也被阻止一个普通的<img>
标签或其他什么。这与上面提到的问答相反。
所以...我的问题是......有没有办法阻止直接访问文件,但仍然可以在网页中使用它们?
答案 0 :(得分:0)
感谢Mark Phillips,我并不完全理解这两个重写条件对我有什么影响:
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost.*$ [NC]
所以我设法搞砸了他们。当我按原样使用代码时,事情就像需要的那样工作。