2012-11-28 177 views
2

我已经在网上搜索全国各地的重定向非www到www良好的通用的.htaccess脚本,我目前使用这样的:的.htaccess重定向非www到www

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

这工作正常,但如果我去一个子域www。将被添加。有没有人有一个很好的工作重定向.htaccess脚本?

+0

这个怎么样?服务器故障有类似的问题 http://serverfault.com/questions/190589/how-to-redirect-non-www-to-www-without-hardcoding-using-htaccess – kernelpanic

+0

@kernalpanic不起作用对我来说,它根本没有重定向 –

回答

1

试试这个:

RewriteCond %{HTTP_HOST} !^www\. 
RewriteCond %{HTTP_HOST} !^([^\.]+)\.([^\.]+)\.([a-z]{2,4})$ 
RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L] 
+0

谢谢,它的工作原理。 –

0

@Vince如果请求的URL是一样的东西是什么:

http://www.abc.example.com

恕我直言,我觉得你的方法,它永远不会被重定向到:

http://www.example.com

这个怎么样?

# Rewrite domain 
RewriteCond %{HTTP_HOST} !^www\.([a-z1-9\-]+)\.([a-z]+)$ [NC] [and] 
RewriteCond %{HTTP_HOST} ([a-z1-9\-]+)\.([a-z]+)$ [NC] 
RewriteRule ^(.*)$ http://www.%1.%2/$1 [R=301,L] 

另外,你们可能会发现这些有用的参考资料:

https://www.drupal.org/node/93603

http://www.askapache.com/htaccess/modrewrite-tips-tricks.html