用www重定向

时间:2011-10-26 20:10:07

标签: apache .htaccess mod-rewrite

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

我该如何解决?

1 个答案:

答案 0 :(得分:1)

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

应该做的伎俩。使用括号()匹配模式,然后匹配$1反向引用,将其重新放回新网址。

编辑,考虑它,同样你可以将^字符(匹配on子句)更改为a。在您的原始模式中应该与上面相同。

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