Allow、Deny 和 Order 指令已棄用?
發表於 : 2026-07-02, 10:14
在 Apache 2.4 版之後,Allow、Deny 和 Order 指令就已被棄用,改由 mod_authz_host 模組中的 Require 指令取代。
若要在 Apache 2.4+ 或 .htaccess 中進行存取控制,請參考以下對應方式:
1. 允許所有人訪問 (Public Access)
Apache 2.2 (舊語法):
請謹慎使用程式碼。
Apache 2.4 (新語法):
請謹慎使用程式碼。
2. 拒絕所有人訪問 (Deny All)
Apache 2.2 (舊語法):
請謹慎使用程式碼。
Apache 2.4 (新語法):
請謹慎使用程式碼。
3. 只允許特定 IP 訪問 (Allow Specific IP)
Apache 2.2 (舊語法):
請謹慎使用程式碼。
Apache 2.4 (新語法):
請謹慎使用程式碼。
4. 拒絕特定 IP 並允許其他所有訪問 (Block Specific IP)
Apache 2.2 (舊語法):
請謹慎使用程式碼。
Apache 2.4 (新語法):
請謹慎使用程式碼。
注意事項:
雖然 Apache 為了向下相容保留了 mod_access_compat 模組,使得舊指令勉強可用,但混合使用新舊指令會導致伺服器解析混亂甚至出現 500 錯誤。建議將所有舊指令轉換為 Require 語法。
如果您能告訴我您 目前想實現的具體訪問規則(例如:只允許某個特定網域的主機、或者封鎖特定的爬蟲),我可以為您寫出 適合 Apache 2.4 的正確 Require 設定。
--
資料來源:Google AI
若要在 Apache 2.4+ 或 .htaccess 中進行存取控制,請參考以下對應方式:
1. 允許所有人訪問 (Public Access)
Apache 2.2 (舊語法):
代碼: 選擇全部
Order Allow,Deny
Allow from allApache 2.4 (新語法):
代碼: 選擇全部
Require all granted2. 拒絕所有人訪問 (Deny All)
Apache 2.2 (舊語法):
代碼: 選擇全部
Order Deny,Allow
Deny from allApache 2.4 (新語法):
代碼: 選擇全部
Require all denied3. 只允許特定 IP 訪問 (Allow Specific IP)
Apache 2.2 (舊語法):
代碼: 選擇全部
Order Deny,Allow
Deny from all
Allow from 192.168.1.100Apache 2.4 (新語法):
代碼: 選擇全部
Require ip 192.168.1.1004. 拒絕特定 IP 並允許其他所有訪問 (Block Specific IP)
Apache 2.2 (舊語法):
代碼: 選擇全部
Order Allow,Deny
Allow from all
Deny from 192.168.1.50Apache 2.4 (新語法):
代碼: 選擇全部
<RequireAll>
Require all granted
Require not ip 192.168.1.50
</RequireAll>雖然 Apache 為了向下相容保留了 mod_access_compat 模組,使得舊指令勉強可用,但混合使用新舊指令會導致伺服器解析混亂甚至出現 500 錯誤。建議將所有舊指令轉換為 Require 語法。
如果您能告訴我您 目前想實現的具體訪問規則(例如:只允許某個特定網域的主機、或者封鎖特定的爬蟲),我可以為您寫出 適合 Apache 2.4 的正確 Require 設定。
--
資料來源:Google AI