2012-10-29 85 views
0

我正在嘗試密碼保護我的網站上的目錄。我可以使.htaccess工作,以便當我訪問該目錄時顯示密碼提示,但是當我將正確的憑據存儲在我的.htpasswd文件中時,我沒有被授予訪問權限。密碼提示只是再次彈出。htaccess找不到.htpasswd文件

我相信這是在.htaccess文件中.htpasswd文件路徑的問題。我檢查我的文檔根目錄(_ SERVER [「DOCUMENT_ROOT」]),它表明,根是這樣的:

/var/www/vhosts/myurl.info/httpdocs 

所以我的.htaccess看起來像這樣:

AuthName "Restricted Area" 
AuthType Basic 
AuthUserFile /var/www/vhosts/myurl.info/httpdocs/.htpasswd 
AuthGroupFile /dev/null 
require valid-user 

我已經把根文檔文件夾(httpdocs)中的.htpasswd。

任何想法我做錯了什麼?一切對我來說都是正確的。

+1

你確定你的htpasswd格式正確嗎? 'username:passwordhash' – Lauri

+0

http日誌中的任何錯誤? – janenz00

+0

我曾經問過一個Apache無法讀寫的問題。可能是這個? – craphunter

回答

4

如果路徑無效,你會得到一個500錯誤或其他東西。由於瀏覽器提示輸入密碼,因此很可能路徑是正確的。但是,您需要確保您正確生成了htpasswd。檢查這 - http://www.htaccesstools.com/htpasswd-generator/

+0

相關的error_log是!我一切正常,但我沒有意識到我的密碼需要加密!我只是在做myusername:plainpassword –

+0

我沒有意識到我*在輸入一個全面的答案時很慢*! @elduderino –

+0

Upvote for you @AlvinWong無論如何。 elduderino我認爲httpdocs可能是你的網站根目錄。我強烈建議你將你的.htpasswd文件從httpdocs文件夾移動到某個公衆無法訪問的地方。 – Salman

0

首先嚐試刪除行「目錄AuthGroupFile的/ dev/null的」 - 如果不使用group文件我不指定它...

如果它不能幫助 - 具有在error.log中看看apache ...它會給你提示。這裏的error.log文章的相關部分...

+0

沒有任何與這個 –

4

確保.htpasswd是在user:passwordhash,其中passwordhash可以是以下類型的格式:

  • 的crypt(一種密碼散列,只有前8個字符支撐當心不要選擇密碼超過8個字符)
  • MD5(特定於Apache的算法,使MD5功能,有點類似於加密散列)
  • SHA1(僅適用於每一個可能的PASSW結果的用途不再ORD,所以如果一個黑客設法讓.htpasswd文件)所得到的散列大概可以逆轉
  • 純文本(你總是可以創建這種格式,但請注意,「httpd守護進程將接受平原Windows,Netware和TPF的文本密碼「。此外使用純文本格式是不安全的,因爲如果黑客獲取文件,他會知道所有的密碼)

通常你會選擇CRYPT,但如果你有一個較長的密碼考慮MD5SHA1。切勿嘗試使用純文本,因爲它在Linux上不受支持,並且很危險。

+0

謝謝Alvin的澄清 –