Dot-Htaccess
在 httaccess 中拒絕訪問的不同方法
我想拒絕通過 .htaccess 訪問給定文件夾中的所有文件和子目錄。我找到了這兩種方法:
deny from all
<Files "*"> Order Deny,Allow Deny from all </Files>
這兩者有什麼區別嗎?
如評論中所述,
Deny
andOrder
指令以前在 Apache 2.4 上已棄用(我假設您正在使用它 - 見下文)。並且僅用於向後兼容 (mod_access_compat)。這些只能在Apache 2.2和更早版本上使用。deny from all
是的,這確實“拒絕”了對目前目錄、文件和子目錄的所有訪問。但是,如果沒有明確說明
Order
處理Deny
andAllow
指令的位置,那麼它如何與相關指令互動就沒有明確定義。
Allow
子目錄.htaccess
文件中的指令應該覆蓋它。<Files "*"> Order Deny,Allow Deny from all </Files>
通過將指令包裝在
<Files>
容器中,您將強制塊被延遲合併。與上面的範例不同,這可能會覆蓋Allow
子目錄中的指令。除非Allow
子目錄中的指令也包含在<Files>
容器中。這可能是可取的,也可能不是可取的。在大多數情況下,這不是必需的。這
*
只是一個匹配所有文件(和目錄)的萬用字元。在Apache 2.4上,您應該改用
Require
指令 (mod_authz_core):Require all denied
關於
<Files "*">
容器的相同內容也適用於此。