.htaccess:将一些子页面重定向到新的子页面,将所有其他重定向到新的主页面 [英] .htaccess: Redirect some subpages to new subpage, all others to new main page

查看:33
本文介绍了.htaccess:将一些子页面重定向到新的子页面,将所有其他重定向到新的主页面的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have searched SO for answers but have not found any matching my criteria. I am moving a webshop to a new domain (it has 1000s of products). For the pages with some decent rankings, I want to redirect them to their new respective subpages. All other pages I want to redirect to the new main page. I am trying to accomplish this using .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

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

What would be the easiest way to accomplish this?

推荐答案

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

You may use these rules in your site root .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]

通常将已知产品规则放在顶部,将通用规则放在底部.

In general keep known-product rules at top and keep generic catch-all rule at the bottom.

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

Here is a non-regex way of comparing REQUEST_URI:

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

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

Unfortunately it requires use of a RewriteCond since pattern in RewriteRule does require a regex.

这篇关于.htaccess:将一些子页面重定向到新的子页面,将所有其他重定向到新的主页面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆