Apache-2.2
受保護的 Apache Web 子目錄要求輸入兩次密碼
我有一個帶有密碼保護的 Web 目錄的 Apache 伺服器。該目錄有一個子目錄,需要另一個密碼,但任何可以訪問子目錄的人也應該可以訪問父目錄。那是:
- /stuff - 允許使用者“stuff”和“admin”
- /stuff/admin - 只允許使用者“admin”
所以我在 Apache 配置中設置了這種方式:
<Directory "/stuff"> [AuthType Basic, AuthName, etc.] Require user stuff Require user admin </Directory> <Directory "/stuff/admin"> [AuthType Basic, AuthName, etc.] Require user admin </Directory>
從某種意義上說,我可以瀏覽到 /stuff 並以“admin”或“stuff”身份登錄。但是,/stuff/admin 中的頁面引用了父目錄中的一些圖像。我發現當我直接瀏覽到 /stuff/admin 並以“admin”身份登錄時,瀏覽器仍然提示我輸入另一個密碼來載入這些圖像。(我知道這是 /stuff 的提示,因為 AuthName 值不同。)
如何避免這種情況並允許有權訪問 /stuff/admin 的使用者只登錄一次(作為“管理員”),而不是兩次?
問題原來是兩個目錄的不同AuthName值。我認為它的唯一目的是為使用者提供有意義的提示。再次閱讀文件後,發現它還有另一個目的:瀏覽器將自動嘗試對具有相同 AuthName 的目錄使用相同的憑據。
所以在我的情況下發生的事情是,在通過**/stuff/admin身份驗證後,瀏覽器會請求/stuff/something-else**,它會得到“401 Unauthorized”響應,但它甚至不會嘗試相同的憑據。在我將 AuthName 更改為相同後,它會通過使用我之前驗證過的“admin”使用者名重試來自動響應 401,這很有效。