0

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

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

1 回答 1

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

此外,如果可以有多个olddomains,请重定向任何不在的 url 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.be的测试截图: 在 htaccess.madewithlove.be 测试

于 2013-04-26T20:26:48.357 回答