所以,最常用的是:
Order Deny,Allow
Allow from All
注意“Deny,Allow”中間只有一個逗號,也只能有一個逗號,有空格都會出錯;單詞的大小寫不限。
上面設(shè)定的含義是先設(shè)定“先檢查禁止設(shè)定,沒有禁止的全部允許”,而第二句沒有Deny,也就是沒有禁止訪問的設(shè)定,直接就是允許所有訪問了。這個主要是用來確?;蛘吒采w上級目錄的設(shè)置,開放所有內(nèi)容的訪問權(quán)。
按照上面的解釋,下面的設(shè)定是無條件禁止訪問:
Order Allow,Deny
Deny from All
如果要禁止部分內(nèi)容的訪問,其他的全部開放:
Order Deny,Allow
Deny from ip1 ip2
或者
Order Allow,Deny
Allow from all
Deny from ip1 ip2
成都機(jī)柜租用
Apache會按照order決定最后使用哪一條規(guī)則,比如上面的第二種方式,雖然第二句allow允許了訪問,但由于在order中allow 不是最后規(guī)則,因此還需要看有沒有deny規(guī)則,于是到了第三句,符合ip1和ip2的訪問就被禁止了。注意,order決定的“最后”規(guī)則非常重要,下面是兩個錯誤的例子和改正方式:
Order Deny,Allow
Allow from all
Deny from domain.org
錯誤:想禁止來自domain.org的訪問,但是deny不是最后規(guī)則,apache在處理到第二句allow的時候就已經(jīng)匹配成功,根本就不會去看第三句。
解決方法:Order Allow,Deny,后面兩句不動,即可。
Order Allow,Deny
Allow from ip1
Deny from all
錯誤:想只允許來自ip1的訪問,但是,雖然第二句中設(shè)定了allow規(guī)則,由于order中deny在后,所以會以第三句deny為準(zhǔn),而第三句的范圍中又明顯包含了ip1(all include ip1),所以所有的訪問都被禁止了。
解決方法一:直接去掉第三句。
解決方法二:
Order Deny,Allow
Deny from all
Allow from ip1
總結(jié):Order Deny,Allow中,后一個是一定會被執(zhí)行的(有相應(yīng)的allow或deny語句時),如果沒有則按照語義分析。