我有一个要求,我需要拒绝访问文件夹(localhost \ uploads \ video)。我通过在localhost的htacess中应用以下规则得到了这个:
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost.*$ [NC]
RewriteRule \.(|avi|mp4)$ - [F,NC]
场景1 - 如果我尝试通过在浏览器中键入地址straighforward来尝试访问resoruce(主要是.avi文件),它可以正常工作,这是消息: 禁止您无权访问此服务器上的/video/23/videoname.html。此外,尝试使用ErrorDocument处理请求时遇到500内部服务器错误错误。这没关系。
场景2 - 在应用tis规则的情况下,如果我尝试点击我主页中导致视频的任何链接,我也会收到与场景1相同的消息,这不是我想要的。我想当我通过主页访问时(通过点击avi链接),这条消息就不会出现。
我怎样才能以这种方式完成这项工作?我想阻止直接访问,但我想保持它正常工作,如果这是从主页执行...
此致 以列
答案 0 :(得分:0)
你的正则表达式似乎是URI模式匹配的问题。将您的规则更改为:
RewriteCond %{HTTP_REFERER} !(www\.)?domain\. [NC]
RewriteRule \.(avi|mp4)$ - [F,NC]
请务必将domain
替换为您的实际域名。