Apache-2.2

受保護的 Apache Web 子目錄要求輸入兩次密碼

  • October 3, 2009

我有一個帶有密碼保護的 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,這很有效。

引用自:https://serverfault.com/questions/69048