如何从域重定向到子域?

时间:2013-04-25 20:24:34

标签: apache .htaccess

我的网站是www.mysite.com,我需要将任何请求重定向到us.mysite.com。

所以:

 www.mysite.com ----> us.mysite.com
 www.mysite.com/hello.php ----> us.mysite.com/hello.php
 // etc

我试过这个但是不起作用:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^mysite.com$
RewriteRule (.*) http://us.mysite.com$1 [R=301]

2 个答案:

答案 0 :(得分:2)

您的RewriteCond似乎只匹配以mysite.com开头和结尾的域名。这不包括www.mysite.com

以下将301重定向不在us.mysite.comus.mysite.com的任何内容:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^us.mysite.com$
RewriteRule ^(.*)$ http://us.mysite.com/$1 [R=301]

答案 1 :(得分:0)

有几种不同的解决方案。从SEO和用户的角度来看,最好的是一对一的301重定向。它保留了您的链接汁,同时将客户重定向到新网站上的确切位置。

如果您启用了mod_alias,我会建议一个简单的

RedirectMatch 301 ^(。*)$ / http://new.domain.com/ $ 1 结果指令可以用

完成

RewriteEngine On RewriteRule(。*)http://new.domain.com/ $ 1 [R = 301,L] 如果您需要链接多个条件和过滤器,则第二个是最佳选择。例如,如果您需要仅根据用户代理标头重定向某些主机或客户端。

来自here