Apache 的 order deny allow 設定說明

來源:互聯網
上載者:User

所以,最常用的是:
Order Deny,Allow
Allow from All

注意“Deny,Allow”中間只有一個逗號,也只能有一個逗號,有空格都會出錯;單詞的大小寫不限。

上面設定的含義是先設定“先檢查禁止設定,沒有禁止的全部允許”,而第二句沒有Deny,也就是沒有禁止訪問的設定,直接就是允許所有訪問了。這個主要是用來確保或者覆蓋上級目錄的設定,開放所有內容的訪問權。

按照上面的解釋,下面的設定是無條件禁止訪問:
Order Allow,Deny
Deny from All

如果要禁止部分內容的訪問,其他的全部開放:
Order Deny,Allow
Deny from ip1 ip2
或者
Order Allow,Deny
Allow from all
Deny from ip1 ip2

apache會按照order決定最後使用哪一條規則,比如上面的第二種方式,雖然第二句allow允許了訪問,但由於在order中allow 不是最後規則,因此還需要看有沒有deny規則,於是到了第三句,符合ip1和ip2的訪問就被禁止了。注意,order決定的“最後”規則非常重要,下面是兩個錯誤的例子和改正方式:

Order Deny,Allow
Allow from all
Deny from domain.org
錯誤:想禁止來自domain.org的訪問,但是deny不是最後規則,apache在處理到第二句allow的時候就已經匹配成功,根本就不會去看第三句。
解決方案:Order Allow,Deny,後面兩句不動,即可。

Order Allow,Deny
Allow from ip1
Deny from all
錯誤:想只允許來自ip1的訪問,但是,雖然第二句中設定了allow規則,由於order中deny在後,所以會以第三句deny為準,而第三句的範圍中又明顯包含了ip1(all include ip1),所以所有的訪問都被禁止了。
解決方案一:直接去掉第三句。
解決方案二:
Order Deny,Allow
Deny from all
Allow from ip1

總結:Order Deny,Allow中,後一個是一定會被執行的(有相應的allow或deny語句時),如果沒有則按照語義分析。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.