Allow、Deny 和 Order 指令已棄用?

主題已鎖定
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 9411
註冊時間: 2003-01-01, 09:01
來自: Taiwan

Allow、Deny 和 Order 指令已棄用?

文章 心靈捕手 »

在 Apache 2.4 版之後,Allow、Deny 和 Order 指令就已被棄用,改由 mod_authz_host 模組中的 Require 指令取代。

若要在 Apache 2.4+ 或 .htaccess 中進行存取控制,請參考以下對應方式:
1. 允許所有人訪問 (Public Access)
Apache 2.2 (舊語法):

代碼: 選擇全部

Order Allow,Deny
Allow from all
請謹慎使用程式碼。
Apache 2.4 (新語法):

代碼: 選擇全部

Require all granted
請謹慎使用程式碼。

2. 拒絕所有人訪問 (Deny All)
Apache 2.2 (舊語法):

代碼: 選擇全部

Order Deny,Allow
Deny from all
請謹慎使用程式碼。
Apache 2.4 (新語法):

代碼: 選擇全部

Require all denied
請謹慎使用程式碼。

3. 只允許特定 IP 訪問 (Allow Specific IP)
Apache 2.2 (舊語法):

代碼: 選擇全部

Order Deny,Allow
Deny from all
Allow from 192.168.1.100
請謹慎使用程式碼。
Apache 2.4 (新語法):

代碼: 選擇全部

Require ip 192.168.1.100
請謹慎使用程式碼。

4. 拒絕特定 IP 並允許其他所有訪問 (Block Specific IP)
Apache 2.2 (舊語法):

代碼: 選擇全部

Order Allow,Deny
Allow from all
Deny from 192.168.1.50
請謹慎使用程式碼。
Apache 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
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
主題已鎖定

回到「架站技術」