2013-05-29 28 views
2

這是我的.htaccess文件:的.htaccess登錄後500錯誤與基礎進行AuthType

AuthType Basic 
AuthName "LOG IN" 
AuthUserFile .htpasswd 
Require valid-user 

登錄後,我得到一個500錯誤。如果我清除.htaccess文件,它工作正常。

任何想法?

+0

.htpasswd文件是否存在? – steven

+0

如果沒有,這是一個快速創建方法:http://www.htaccesstools.com/htpasswd-generator/ – steven

+0

是的,它存在。我確實使用它來創建文件。 – Jake

回答

18

我認爲你必須完整路徑寫信給你的htpasswd的(在Linux上:/path/to/.htpasswd)

http://weavervsworld.com/docs/other/passprotect.html

故障排除

確保AuthUserFile中指定的路徑是正確的完整路徑 。這是問題的主要原因。如果Apache找不到 .htpasswd文件,則所有嘗試都將失敗。

確保在.htaccess和.htpasswd文件上的權限 已設置,以便Apache可以讀取它們的 。搭配chmod 0644的.htaccess文件模式0644 htpasswd的

其他問題可能會 在你的控制。 Web管理員可以鎖定Apache,使其忽略所遇到的所有.htaccess文件。這可以用一個無的AllowOverride指令,並選擇在 的ServerRoot/DocumentRoot的目錄來實現 。如果是這種情況(不允許的.htaccess ),你將不得不懇請您的網站管理員,以 允許在個人 web目錄與授權指令.htaccess文件。這可以通過AllowOverride AuthConfig 指令和選項來實現。

+0

成功!謝謝。 – Jake

+1

什麼是修復?我有同樣的問題。 – Guyver

2

由於高在谷歌這個問題的分數,我想我會追加史蒂芬的回答有點:

完整路徑htpasswd的在這裏指的是真正的全路徑,而不是路徑,你通過ftp看到。例如,當我用ftp登錄到我的共享主機帳戶時,看起來我的web根目錄位於/ public_html

但是,這只是因爲如何設置ftp服務器。我的web根目錄的實際路徑是/ home/username/public_html,並且設置AuthUserFile時考慮到了這個問題,至少對我而言是這樣。

在Google搜索之後,我在Webmasters網站上找到了缺少的信息。

+0

偉大的補充,謝謝!讓我補充一點,可以使用echo realpath(「。」);'via php。 – YakovL

0

如果您使用PHP,並得到錯誤 - 500

一個好球是: 創建一個PHP文件 'info.php的' 與內容:

<?php 
phpinfo(); 

在瀏覽器中輸入 在這個網址在Apache環境中 查找DOCUMENT_ROOT

獲取此內容例如:'C:/ wamp/www /' 並更新您的。htaccess:

AuthUserFile 'C:/wamp/www/.htpasswd'