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

标签 .htaccess mod-rewrite

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

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 内部服务器错误。我离我有多远?

最佳答案

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

关于.htaccess - 当一个子域都指向完全相同的文件时,如何将它们重定向到另一个子域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7971926/

相关文章:

http - .htaccess 将文件夹下的所有页面重定向到新域

php - htaccess mod_rewrite 没有符号链接(symbolic link)?

apache - 非 www .htaccess 重定向到 www 给出 500 错误

regex - .htaccess 为每个子目录设置默认页面

apache - 我在 Apache 中遇到 HTTPS 重定向问题

php - .htaccess 简短友好的 url

apache - 将 www 重定向到非 www,同时保持协议(protocol) HTTP 或 HTTPS

.htaccess - 对于使用 .htaccess 输入的任何 URL,强制 SSL 到 www 子域?

.htaccess - RewriteRule ^(.*)$ 与 RewriteRule (.*)$ 的区别

php - 将尾部斜杠添加到 url