2013-12-18 45 views
0

當某人沒有輸入正確的憑證時,會顯示一個特定的錯誤.php頁面,但似乎會顯示它自己的錯誤。同時保護我的所有目錄,不管它被放入哪個目錄。 有777權限。我的.htaccess文件有什麼問題?

ErrorDocument 401 Mywebsite.com/CustomError.php 

AuthName "My Password Protected Site" AuthUserFile 
MYwebsite.com/Folder/.htpasswd 
AuthType Basic 
Require valid-user 

# Set REMOTE_USER env variable on 401 ErrorDocument 
RewriteEngine On 
RewriteBase/
RewriteCond %{ENV:REDIRECT_STATUS} ^401$ 
RewriteRule .* - [E=REMOTE_USER:%{ENV:REDIRECT_REMOTE_USER}] 

下面是它總是說,截至目前:

需要授權

此服務器無法驗證您有權訪問請求的文檔。您提供了錯誤的憑據(例如,錯誤的密碼),或者您的瀏覽器不知道如何提供所需的憑據。

我曾經有過spefic目錄爲/文件夾/文件,而不是網站/文件夾/文件,但是當我這樣做,錯誤頁面將這一行,以及:

此外,一個404 Not Found錯誤在嘗試使用ErrorDocument處理請求時遇到。

+0

好的,第一件事,當你玩htaccess的時候總是沖刷你的瀏覽器緩存......或者在你的url中添加隨機參數 – Sebas

+0

/我認爲'AuthUserFile'應該在下一行的開頭,而不是在末尾那裏? – Wrikken

+0

我試着重新排列文件......你的意思是什麼樣的隨機參數? – user3112748

回答

0

這條線:

ErrorDocument 401 Mywebsite.com/CustomError.php 

按照documentation

網址可以與用於本地網絡的路徑的斜槓(/)(相對於DocumentRoot的)開始,或者是一個完整的URL客戶可以解決這個問題。或者,可以提供消息以由瀏覽器顯示。例子:

ErrorDocument 500 http://foo.example.com/cgi-bin/tester
ErrorDocument 404 /cgi-bin/bad_urls.pl
ErrorDocument 401 /subscription_info.html
ErrorDocument 403 "Sorry can't allow you access today"

此外,特殊的默認值可以用來指定Apache的簡單的硬編碼消息。雖然在正常情況下不需要,但默認情況下,將恢復Apache的簡單硬編碼消息,以便配置可以繼承現有的ErrorDocument。

ErrorDocument 404 /cgi-bin/bad_urls.pl

<Directory /web/docs>
ErrorDocument 404 default
</Directory>

所以你不能有Mywebsite.com/CustomError.php作爲第二個參數,它必須是一個完整的URL開始http://,啓動絕對路徑與/或消息。您不能將相對路徑作爲第二個參數。