程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP基礎知識 >> Apache的order deny/allow命令的含義

Apache的order deny/allow命令的含義

編輯:PHP基礎知識
 

Allow和Deny可以用於apache的conf文件或者.htaccess文件中(配合Directory, Location, Files等),用來控制目錄和文件的訪問授權。order,顧名思義是順序的意思,所以order命令可以決定deny和allow起作用的順序,通俗的說就是誰排在最後那麼誰就有最終的決定權。

 

order deny,allow和order allow,deny的區別也就顯而易見了,前者的意思是先檢查是否有deny命令,不論有沒有都會再繼續檢查是否有allow規則,如果有,allow規則的內容可以覆蓋掉deny規則。例如,

Order Allow,Deny
Allow from ip1
Deny from all

本意是想禁止ip1的訪問,而允許其他所有ip訪問,但顯然用反了順序,按照誰在後誰最大的原則,deny是掌握大權的人,所以deny from all就將allow的命令否決了。正確的寫法應該是:

Order Deny,Allow //先檢查Deny,並由Allow拍板
Deny from all //Deny命令要求禁止所有ip的訪問
Allow from ip1 //Allow說只允許ip1訪問

結果:只允許ip1訪問網站,禁止其他所有ip的訪問。

按照這個原則,還有如下應用。

禁止特定ip的訪問
<Files 403.shtml>
order allow,deny
allow from all
</Files>
deny from 1.1.1.1 ;寫要封的IP

禁止部分ip,其他的全部開放的兩種寫法

Order Deny,Allow
Deny from ip1 ip2

或者

Order Allow,Deny
Allow from all
Deny from ip1 ip2

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved