2012-12-18 71 views
-1

我有一個將所有請求重定向到/public/index.php的htaccess文件。403使用htaccess重寫時出錯

AuthType Basic 
AuthName "Access to /testsite" 
AuthUserFile /kunden/homepages/28/d446685396/htpasswd 
Require user oglover 

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . public/index.php [L] 

它適用於所有請求,例如, www.mywebsite.com/aboutus,www.mywebsite.com/contact,www.mywebsite.com/news等....但如果我訪問www.mywebsite.com/我得到一個403禁止的錯誤。一切工作正常,直到我搬到一個新的Web主機,我無法解決如何解決這個問題。

回答

0
RewriteRule . public/index.php [L] 

在此規則的正則表達式中,.,表示「任何單個字符,在字符串中的任何地方」,這將導致你的問題。當您請求www.mywebsite.com/時,正則表達式會與空字符串匹配(請參閱手冊中的What's being matched?)。正則表達式不匹配,所以規則沒有被應用,所以服務器試圖服務於被禁止的根的索引。

要匹配的一切,改變規則是這樣的:

RewriteRule .* public/index.php [L] 

.*手段「零個或多個字符」,這不符合空字符串。