這是我的.htaccess文件:的.htaccess登錄後500錯誤與基礎進行AuthType
AuthType Basic
AuthName "LOG IN"
AuthUserFile .htpasswd
Require valid-user
登錄後,我得到一個500錯誤。如果我清除.htaccess文件,它工作正常。
任何想法?
這是我的.htaccess文件:的.htaccess登錄後500錯誤與基礎進行AuthType
AuthType Basic
AuthName "LOG IN"
AuthUserFile .htpasswd
Require valid-user
登錄後,我得到一個500錯誤。如果我清除.htaccess文件,它工作正常。
任何想法?
我認爲你必須完整路徑寫信給你的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 指令和選項來實現。
由於高在谷歌這個問題的分數,我想我會追加史蒂芬的回答有點:
完整路徑htpasswd的在這裏指的是真正的全路徑,而不是路徑,你通過ftp看到。例如,當我用ftp登錄到我的共享主機帳戶時,看起來我的web根目錄位於/ public_html
但是,這只是因爲如何設置ftp服務器。我的web根目錄的實際路徑是/ home/username/public_html,並且設置AuthUserFile時考慮到了這個問題,至少對我而言是這樣。
在Google搜索之後,我在Webmasters網站上找到了缺少的信息。
偉大的補充,謝謝!讓我補充一點,可以使用echo realpath(「。」);'via php。 – YakovL
如果您使用PHP,並得到錯誤 - 500
一個好球是: 創建一個PHP文件 'info.php的' 與內容:
<?php
phpinfo();
在瀏覽器中輸入 在這個網址在Apache環境中 查找DOCUMENT_ROOT
獲取此內容例如:'C:/ wamp/www /' 並更新您的。htaccess:
AuthUserFile 'C:/wamp/www/.htpasswd'
.htpasswd文件是否存在? – steven
如果沒有,這是一個快速創建方法:http://www.htaccesstools.com/htpasswd-generator/ – steven
是的,它存在。我確實使用它來創建文件。 – Jake