在我的網頁伺服器上,我想阻止除一些合理的例外之外的所有檔案。我有以下 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 debug 查看了 Apache2 的錯誤日誌,但在請求預設文件時,唯一的訊息是「客戶端被伺服器設定拒絕」。 (明確要求index.html有效)
編輯:使用 Location 指令可以解決此問題。看使用 FilesMatch 提高安全性 所以我的問題解決了,但我仍然想知道為什麼它不能與 FilesMatch 一起使用。