2013-07-23 38 views
1

我有一個漂亮的URL設置與.htaccess重寫不存在的URL(不嚴格404錯誤)到一個PHP腳本,提供內容或404消息。我從這個重寫中排除了現有的文件和目錄,所以CSS,圖像等不會受到影響。.htaccess重寫,但排除密碼保護的目錄結果404錯誤

但是,有一個目錄受到.htpasswd密碼保護,該目錄也應繞過重寫規則,但在啓用.htpasswd時不會啓用該目錄。

父目錄的.htaccess:

RewriteEngine On 

RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /callbacks.php [L] 

有一個子目錄具有以下的.htaccess:

RewriteEngine on 

Options All -Indexes 

AuthName "Backstage Access" 
AuthType Basic 
AuthUserFile /path/to/.htpasswd 
AuthGroupFile /dev/null 
require valid-user 

如果我刪除require valid-user行,父目錄的重寫規則,忽略了孩子的目錄我想要,我可以從我的瀏覽器訪問它。但是,當我打開授權時,父目錄的.htaccess將子目錄重寫爲/callbacks.php,導致自定義404錯誤。

有關如何解決此問題的任何想法?顯然,我不能刪除密碼保護的需要。我嘗試刪除父級重寫規則,而是簡單地使用/callbacks.php作爲404錯誤文檔,但不傳輸POST和GET數據。

回答

0

我不知道,如果它仍然實際的,但我有同樣的問題,並找到了解決 - 添加到您的htaccess下面幾行:

ErrorDocument 401 /somepage.html 
ErrorDocument 403 /somepage.html 

,這應該足以繞過重寫