在我的网络服务器上,我想阻止除某些合理例外之外的所有文件。我有以下 Filesmatch 指令正在执行它的工作:
<FilesMatch "(?<!\.txt|\.htm|\.html|\.css|\.php|\.js|\.jpg|\.png|\.gif|\.ico|\.svg|\.eot|\.ttf|\.woff|\.otf)$">
Order Allow,Deny
Deny from All
</FilesMatch>
请注意,FilesMatch 使用负向后视正则表达式:请参阅http://www.regular-expressions.info/lookaround.html。它将阻止除具有所述扩展名的文件之外的所有文件。
这还会导致目录默认文档 (index.html) 出现 403 Forbidden。这不是我想要的。有人能帮忙吗?默认文档查找如何工作?是否有其他解决方案可以阻止除部分之外的所有文档?我使用 LogLevel 调试查看了 Apache2 的错误日志,但当请求默认文档时,唯一的消息是“服务器配置拒绝客户端”。(明确请求 index.html 有效)
编辑:可以使用 Location 指令来解决这个问题。请参阅使用 FilesMatch 提高安全性 所以我的问题解决了,但我仍然想知道为什么它不能与 FilesMatch 一起使用。