2011-10-26 85 views
1
RewriteCond %{HTTP_HOST} !^www\..+$ [NC] 
RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

如果我打開mysite.com,那麼這會將我重定向到www.mysite.com。還行吧。 但是,如果我打開mysite.com/admin然後這重定向我在www.mysite.com而不是www.mysite.com/admin與www重定向

我該如何解決它?

回答

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

應該這樣做。使用圓括號()來匹配模式,然後使用$1反向引用將其放回到新的URL中。

編輯,思考它,類似地,您可以將^字符(匹配子句)更改爲。在你原來的模式中應該和上面一樣。

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

謝謝,但這不起作用 –

+0

我懷疑你有其他規則打破它呢?你有RewriteEngine在這些線以上的地方? –

+1

另外,如果您仍然遇到問題,也許您可​​以發佈整個代碼。我還建議http://htaccess.madewithlove.be/進行測試 - 它可能有助於解釋您錯誤的位置。這臺測試儀和一個現場我使用上述兩條規則在工程上進行了測試。 –