2014-06-24 111 views
0

我一定在Apache中發現了一個bug!因爲我的虛擬主機有最棘手的問題。我無法訪問名爲admin的文件夾。它在一個虛擬主機中工作,但不在另一箇中。 (同託管帳戶)mod_rewrite由於mod_auth不工作?

/.htaccess

<IfModule mod_rewrite.c> 
    Options +FollowSymLinks 
    RewriteEngine on 
    RewriteBase/

    # No logic for resolved paths 
    RewriteCond %{REQUEST_FILENAME} -d [OR] 
    RewriteCond %{REQUEST_FILENAME} -f [OR] 
    RewriteCond %{REQUEST_FILENAME} -l 
    RewriteRule^- [L] 

    RewriteRule .* index.php [L] 
</IfModule> 

/admin/.htaccess:

AuthType Basic 
AuthName "Restricted Area" 
AuthUserFile /home/user/domains/mydomain.com/public_html/admin/.htpasswd 
Require valid-user 

解決http://www.mydomain.com/admin/index.php我收到404未找到。如果我刪除了admin/.htaccess文件,則頁面解析。那是怎麼回事?

+0

可能欺騙http://stackoverflow.com/questions/3144401/htaccess-mod-rewrite-conflicting-with-subfolder-auth – tim

回答

0

該問題來自ErrorDocument設置。 添加以下行來管理/ htaccess的解決了這個問題

ErrorDocument 401 "Access Denied"

0

請參閱我的Tips for debugging .htaccess rewrite rules。除非oyu've覆蓋RewriteOptions Inherit*指令的默認值,否則因爲/admin/.htaccess存在,則父代不會執行。或者將

RewriteOptions Inherit 

添加到此文件或者只需在管理員訪問文件中重複您需要的重寫。

+0

但admin文件夾不一定需要重寫,因爲它是一個物理目標。似乎是這樣的,父母是被解析的人。一個虛擬主機如何工作而另一個虛擬主機不工作並不奇怪? – tim

+0

如果默認情況下啓用了多視圖,可以獲得各種奇怪的效果。嘗試在管理.htaccess中複製-d,-f -l轉義符 – TerryE