我的 Google-fu 在这方面让我失望了...
我正在尝试创建一个仅允许访问特定目录中的图像、js 和 css 文件的 Apache 配置。
例如,以下 URL 应该有效:
mysite.com/dir/image.gif
但这应该被阻止:
mysite.com/dir/page.php
我遇到的问题是让它只对/dir/有效。/dir/之外的其余目录不应受此指令影响。
这是我目前所拥有的,它没有做我需要的(它似乎适用于所有目录)。
<FilesMatch "\.(gif|jpe?g|jpg|png|js|css)$">
Order deny,allow
Allow from all
</FilesMatch>
我如何只允许访问/dir/中的某些文件类型而不影响我目录的其余部分?
最佳答案
我最近用过这个:
Options -ExecCGI -Indexes
<FilesMatch "\.*$">
deny from all
</FilesMatch>
<FilesMatch "\.(png|jpg|gif|css)$">
allow from all
</FilesMatch>
我找不到关于此的明确文档,但对于 FilesMatch,Apache 似乎没有在第一次匹配时短路。它处理整个 .htaccess 规则。
因此第一个规则阻止访问所有文件类型,第二个规则允许选定的类型。
可能需要更多测试,但必须为客户做一些易于他们实现的事情,以处理他们的开发人员正在努力修复的 Web 漏洞。
关于apache - 按文件类型限制对目录的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4982441/