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

rho*_*son 3 .htaccess mod-rewrite

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

work.mysite.com
play.mysite.com
Run Code Online (Sandbox Code Playgroud)

这是不好的做法,所以我想选择work.mysite.com并将其作为规范URL,永久重定向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>
Run Code Online (Sandbox Code Playgroud)

这让我得到了一个非常漂亮的500内部服务器错误.我有多远?

Ger*_*ben 6

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

这也将从www.work.example.com中删除www

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