如何将所有流量重定向到一个域到另一个域的同一位置

时间:2017-11-09 14:48:59

标签: apache .htaccess redirect mod-rewrite

我正在尝试将所有流量重定向到另一个域。无论子域或目录是什么。它应该转到另一个域的同一个地方。

zweeue.com - > zoeyt.com

s.zweeue.com - > s.zoeyt.com

zweeue.com/art/ - > zoeyt.com/art /

现在这就是诀窍,在另一个域中,我有一个mod重写,它将不存在的文件和目录的所有流量发送到l.php

所以zoeyt.com/art存在,所以zweeue.com/art/会去zoeyt.com/art /

但zweeue.com/mvs不会这样zoeyt.com/mvs会去zoeyt.com/mvs/。现在,zweeue.com / mvs获得了404,但zweeue.com/art/应该转到zoeyt.com/art/,因为/ art /存在。 zweeue.com上的所有内容都通过以下第一个htaccess文件转到zoeyt.com。下面的第二个mod重写块是zoeyt.com的单独主机上的单独htaccess文件

如何成功完成此操作?目前zweeue.com/mvs访问zoeyt.com/而不是zoeyt.com/mvs,zoeyt的htaccess将发送给l.php。

以下是第一个域名的重定向htaccess,zweeue.com:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^(.*)$ http://www.zoeyt.com/$1 [L,R=301]

</IfModule>

以下是第二个域的htacccess文件(zoeyt):

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /l.php [L]
</IfModule>

1 个答案:

答案 0 :(得分:0)

将您的第一个.htaccess更改为:

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteRule ^ http://www.zoeyt.com%{REQUEST_URI} [L,R=301,NE]

</IfModule>

第二个域名的htacccess文件(zoeyt):

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ l.php [L]

</IfModule>

使用%{REQUEST_URI}代替$1可确保您向目标发送完整URI,而不是$1中捕获的相对值。