0
我寫這個的.htaccess配置,它的工作原理:Apache配置:如何從env = protected拒絕,但允許從env = errorhandler?
SetEnvIfNoCase Host ^staging\. protected
SetEnvIfNoCase Host ^dev\. protected
AuthType basic
AuthName "Protected"
AuthUserFile "/path/to/.htpasswd"
Order deny,allow
deny from env=protected
Require valid-user
Satisfy any
它檢查主機名開頭「升級」。或「開發」。並設置環境變量「protected」。如果已設置,瀏覽器將要求輸入密碼。如果不是,則不會影響訪問限制。這是預期的行爲。
不幸的是,我正在使用的CMS從本地主機執行自己的HTTP請求,以在內部獲取錯誤頁面,如果404錯誤發生。但是服務器本身沒有被認證,所以這個失敗了。
我能夠這樣設置另一個環境變量:
SetEnvIfNoCase Request_URI "404$" errorhandler
但它有沒有效果,即使我改變這樣
Order allow,deny
allow from env=errorhandler
deny from env=protected
Require valid-user
Satisfy any
什麼我需要改變的最後一個塊,如果設置了env = proctected,則要求輸入密碼,但是如果env = errorhandler也設置,則跳過密碼?謝謝。
這看起來很有希望!我會讓你保持最新... – Armin
當然,讓我知道你是否遇到過這個問題。 – anubhava
不幸的是它沒有工作。所有呼叫仍保留在401響應中。 – Armin