Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 当两个子域都指向完全相同的文件时,如何将它们重定向到另一个子域?_.htaccess_Mod Rewrite - Fatal编程技术网

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

.htaccess 当两个子域都指向完全相同的文件时,如何将它们重定向到另一个子域?,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我有一个站点有两个指向它的域,我们称它们为: work.mysite.com play.mysite.com 这是一种糟糕的做法,因此我想选择work.mysite.com,并将其作为规范URL,永久重定向到play.mysite.com 我在这两个域的根目录中,在一个.htaccess文件中,我的头撞在水泥地板上,希望我不在这里。以下是我目前正在尝试的。请告诉我我完全错了,好吗 <IfModule mod_rewrite.c> RewriteEngine On RewriteBa

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

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>

重新启动发动机
重写基/
重写cond%{HTTP_HOST}^(www\)?播放\.mysite\.com[NC]
重写规则^/?(*)?$http://work.mysite.com/$1[R=301]

这给我带来了一个非常严重的内部服务器错误。我离这里有多远?

啊,我想我只是想太花哨了。这似乎很管用:

<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>

重新启动发动机
重写基/
RewriteCond%{HTTP_HOST}^play.mysite.com$
重写规则^(.*)$http://work.mysite.com/$1[R=301,L]
RewriteCond%{HTTP_HOST}^www.play.mysite.com$
重写规则^(.*)$http://work.mysite.com/$1[R=301,L]
这也将从www.work.example.com中删除www

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

这对我很有效

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

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

无需使用
QSA
——仅当您修改查询字符串时才需要它,否则它将原封不动地传递。在b/w^(.*)中使用斜杠,在第二行中使用$。否则,新url将以//结尾。例如work.example.com//。。。修改:RewriteCond%{HTTP_HOST}!work.example.com[NC]RewriteRule^(.*)/$[R=301,L,QSA]@Rameez在
.htaccess
上下文中删除了前导斜杠。如果在
服务器配置中使用上述代码,则需要添加斜杠,但必须在开头添加斜杠,而不是像以前那样在结尾添加斜杠。所以
重写规则^/(.*)$…
。否则,例如
example.com/index.html
将不匹配!
RewriteCond %{HTTP_HOST} ^jquery\.webcodehelpers\.com
RewriteRule (.*)$ http://uieiq.webcodehelpers.com/$1 [R=301,L]