将所有深层链接重定向到新域,所有URL都略有变化

时间:2014-11-27 11:32:23

标签: apache .htaccess mod-rewrite redirect http-status-code-301

我正在尝试将DomainA的所有页面重定向到DomainB,但URL结构稍有变化。

例如:

我需要重定向:

  

http://www.domaina.com/cars/fast-motors - >   http://www.domainb.com/vehicles/fast-cars   http://www.domaina.com/cars/slow-motors - >   http://www.domainb.com/vehicles/slow-cars   http://www.domaina.com/cars/red-motors - >   http://www.domainb.com/vehicles/red-cars   http://www.domaina.com/cars/pink-motors - >   http://www.domainb.com/vehicles/pink-cars

我可以设法将allurls重新编辑到新域名,如下所示:

  

RewriteRule上的RewriteEngine ^ cars /(.*)$   http://www.domainb.com/vehicles/ $ 1 [R = 301,L]

但是我无法弄清楚如何改变最后一个词。数以千计这些网址,所以我不能手动做一个301的列表。我基本上需要将所有网址重定向到新网域,但将/cars/切换为/vehicles/,将-motors切换为-cars

任何帮助表示感谢。

感谢

1 个答案:

答案 0 :(得分:3)

您可以在.htaccess文件中使用此功能:

RewriteEngine On
RewriteRule ^cars/(.*)-motors/? http://www.domainb.com/vehicles/$1-cars [R=302,L]

当测试工作正常时,更改[R=302] [R=301]