.htaccess将多个域重定向到单个域

时间:2013-04-26 20:22:46

标签: .htaccess

我正在尝试将旧域中的所有网页转到具有相同文件结构的新域上的相应网页。我使用以下代码但问题是旧网页转到索引网页而不是相应的网页。基本上,我认为捕获其余网址的(。*)不会在重写规则中以$ 1显示?

 Options +FollowSymLinks -MultiViews
 RewriteEngine On
 RewriteBase /
 RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com(.*) [NC]
 RewriteRule ^ http://www.newdomain.com$1 [R=301,L]

1 个答案:

答案 0 :(得分:1)

如果您使用$1,则需要使用()在RewriteRule中捕获一些内容。 试试这个:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com$ [NC]
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]

这会将http://olddomain.com/page.php重定向到http://www.newdomain.com/page.php

此外,如果可能有多个olddomain s,请重定向任何不在newdomain的网址:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^(www\.)?newdomain\.com$ [NC]
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]

这会将http://notnewdomain.com/page.php重定向到http://www.newdomain.com/page.php

修改

以下是我在http://htaccess.madewithlove.be的测试的屏幕截图: tested at htaccess.madewithlove.be