2012-02-17 60 views
0

根據我在Apache上閱讀的內容,我使用了他們提供的以下示例在我的所有網站上執行301重定向。301重定向動態主機包括DOCUMENT_ROOT

RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTP_HOST} !^$ 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301] 

,他們稱將這不太工作。如果我嘗試www.domain.com它可以。如果我嘗試使用domain.com,我可以訪問www.domain.com//home/www/public_html/www.domain.com

看起來像是希望在重定向中包含DOCUMENT_ROOT。我最好爲每個網站創建一個個人.htaccess嗎?

什麼是運行更快 - Apache或HTACCESS?

+0

你在'.htaccess'中有哪些重寫規則? – ThinkingMonkey 2012-02-17 15:27:41

+0

我現在有任何東西。我只是想知道我是否應該去那個方向看看現在使用'httpd.conf'得到的結果 – Tim 2012-02-17 15:32:45

回答

0

試試這個。請確保您包括RewriteBase /

RewriteEngine on 
RewriteBase/

RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTP_HOST} !^$ 
RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

如果你仍然得到舊的結果,your previous 301 redirect is probably cached,複試在私人(隱身)瀏覽模式。

+0

'RewriteBase /'是缺失的成分。感謝您指出這一點。 – Tim 2012-02-17 16:49:56

0

使用Apaches httpd.conf的速度更快,因爲訪問.htaccess文件會增加一個小開銷-Apache會檢查每個目錄(和父目錄)的文件,並且它會針對每個請求加載。使用httpd.conf在您有權訪問時更好。如果您無權訪問主配置文件,請使用.htaccess

+0

將堅持'httpd.conf'我有權限訪問。任何它會包含DOCUMENT_ROOT的原因? – Tim 2012-02-17 15:34:09

+0

如果您使用的不是「」塊中的重定向,則需要添加'RewriteBase /'或前導'/'。 – ssh 2012-02-17 16:05:46