2013-04-26 122 views
0

我试图让所有来自旧域名的网页转到具有相同文件结构的新域名上的相应网页。我使用下面的代码,但问题是旧的网页转到索引网页,而不是相应的网页。基本上我认为捕获URL的其余部分的(。*)不会在重写规则中显示$ 1?.htaccess将多个域名重定向到单个域名

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

回答

1

如果使用$1,你需要使用()捕捉到你的重写规则的东西。 试试这个:

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.phphttp://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.phphttp://www.newdomain.com/page.php

编辑:

这里是我的测试截图在http://htaccess.madewithlove.betested at htaccess.madewithlove.be

+0

接近,但下降的文件夹。例如:http://notnewdomain.com/folder/page.php转到http://newdomain.com/page.php而不是http://newdomain.com/folder/page.php – 2013-04-26 20:35:36

+0

它也重定向'http: // example.com/folder/page.php'到'http:// www.newdomain.com/folder/page.php'。你是这个意思吗? – showdev 2013-04-26 20:38:24

+0

它删除/文件夹/并去http://www.newdomain.com/page.php – 2013-04-26 20:43:25

相关问题