
我正在使用 nginx,當使用密碼保護目錄並輸入登入詳細資訊時,我收到了 403 錯誤 (:O)
位置〜^/文檔{ auth_basic "存取受限。"; #老線。 # auth_basic_user_file /private/pass; #新隊。 auth_basic_user_file /var/www/site.com/private/pass; }
pass 檔案就像
thisID:thisPass: 你好評論!
有什麼建議嗎?
答案1
儘管它與您收到的錯誤不匹配...
pass 檔案就像
thisID:thisPass: 你好評論!
是否假設密碼實際上已加密?我認為應該是;我懷疑您是否可以簡單地將人類可讀的密碼放入該密碼檔案中。
如果 nginx 需要該檔案中的編碼/加密密碼,那麼如果儲存的密碼使用其他格式,它將永遠找不到良好的匹配。 (為了找到匹配項,它將對使用者輸入的密碼進行編碼,並將編碼後的輸入與文件中已知的編碼密碼進行比較。)事實上,根據文件,密碼必須由函數 crypt(3) 編碼。您可以使用 Apache 的 htpasswd 程式建立密碼檔案。
這仍然不能解釋實際的錯誤訊息,但是當密碼檔案保存人類可讀的密碼時,那麼這肯定會產生一個402 Unauthorized
或403 Forbidden
。
人們也可以在線上創建這樣的編碼密碼,各種網站。
答案2
我處理此類事情的經驗是,當電腦告訴您文件或目錄不存在時......它不存在! :-)
嘗試尋找相對於伺服器根目錄的文件,即
auth_basic_user_file /private/pass;
答案3
我想位置/文件路徑與預期不符。您確定檔案路徑的語法絕對正確嗎?
另外,伺服器是否具有相關密碼檔案的讀取權限?