Как перенаправить один поддомен в другой, если оба они указывают на одни и те же файлы? - PullRequest
3 голосов
/ 01 ноября 2011

У меня есть сайт, на который указывают два домена, назовем их:

work.mysite.com
play.mysite.com

Это плохая практика, поэтому я хочу выбрать 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>

Это дает мне действительно красивую 500 внутреннюю ошибку сервера. Как далеко я?

Ответы [ 3 ]

6 голосов
/ 02 ноября 2011
RewriteCond %{HTTP_HOST} !work.example.com [NC]
RewriteRule ^(.*)$ http://work.example.com/$1 [R=301,L,QSA]

Это также приведет к удалению www с www.work.example.com

Не уверен, что QSA необходим, но я думаю, что он предотвратит перенаправление play.example.com/?home на work.example.com/ вместо work.example.com/?home

.
1 голос
/ 01 ноября 2011

Ах, я думаю, я просто пытался быть слишком модным.Кажется, это работает нормально:

<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>
0 голосов
/ 28 ноября 2017

Это сработало для меня.

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

Я использовал это для перенаправления субдомена в другой субдомен.

...