当它们都指向完全相同的文件时,如何将一个子域重定向到另一个子域?

时间:2011-11-01 19:42:15

标签: .htaccess mod-rewrite

我的网站有两个指向它的域名,让我们称之为:

work.mysite.com
play.mysite.com

这是一种不好的做法,因此我想选择work.mysite.com并将其设为规范网址,将play.mysite.com永久重定向到该网址。

我在这两个域的根目录中,在一个.htaccess文件中,撞到水泥地板上,并希望我不在这里。这是我目前正在尝试的。告诉我我是多么的错,拜托?

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?play\.mysite\.com [NC]
RewriteRule ^/?(.*)?$ http://work.mysite.com/$1 [R=301]
</IfModule>

这给我带来了非常漂亮的500内部服务器错误。我有多远?

3 个答案:

答案 0 :(得分:6)

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

这也将从www.work.example.com

中删除www

不确定是否需要QSA,但我认为这会阻止play.example.com/?home重定向到work.example.com/而不是work.example.com/?home

答案 1 :(得分:1)

啊,我想我只是想过于花哨。这似乎工作正常:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^play.mysite.com$ 
RewriteRule ^(.*)$ http://work.mysite.com/$1 [R=301,L] 
RewriteCond %{HTTP_HOST} ^www.play.mysite.com$ 
RewriteRule ^(.*)$ http://work.mysite.com/$1 [R=301,L]
</IfModule>

答案 2 :(得分:0)

这对我有用。

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

我用它将子域名重定向到另一个子域名。