如何在阻止除 Apache2 网络服务器上的某些文件之外的所有文件的同时保持默认文档正常工作?

如何在阻止除 Apache2 网络服务器上的某些文件之外的所有文件的同时保持默认文档正常工作?

在我的网络服务器上,我想阻止除某些合理例外之外的所有文件。我有以下 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 一起使用。

相关内容