.htaccess:将一些子页面重定向到新的子页面,将所有其他子页面重定向到新的主页



我已经搜索了SO的答案,但没有找到任何符合我的条件的答案。 我正在将网上商店转移到一个新域(它有 1000 种产品(。对于排名不错的页面,我想将它们重定向到各自的新子页面。我想重定向到新主页的所有其他页面。 我正在尝试使用 .htaccess 完成此操作

shopold.com/cat/product1.html to shopnew.com/category/product1
shopold.com/cat/product2.html to shopnew.com/category/product2
All other pages from shopold.com to shopnew.com

实现这一目标的最简单方法是什么?

您可以在站点根 .htaccess 中使用这些规则:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(?:www.)?shopold.com$ [NC]
RewriteRule ^cat/product1.html$ http://shopnew.com/category/product1 [L,NC,R=301]
RewriteRule ^cat/product2.html$ http://shopnew.com/category/product2 [L,NC,R=301]
RewriteRule ^ http://shopnew.com/? [L,NC,R=301]

通常,将已知产品规则保留在顶部,将通用的捕获规则保留在底部。


这是一种比较REQUEST_URI的非正则表达式方法:

RewriteCond %{REQUEST_URI} =/cat/product1.html
RewriteRule ^ http://shopnew.com/category/product1 [L,NC,R=301]

不幸的是,它需要使用RewriteCond因为RewriteRule中的模式确实需要正则表达式。