0

我目前(合并)移动类别,子产品将不复存在。由于我们有很多产品,因此重定向父类别下的所有产品是有意义的。

示例网址:

http://www.domain.com/chandeliers/modern-chandeliers/*

(其中 '*' = 子产品/网址)

重定向网址:

http://www.domain.com/chandeliers/

当前显示为:

RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^chandeliers\/modern-chandeliers\/$ "http\:\/\/www\.domain\.com\/chandeliers\/" [R=301,L]
4

1 回答 1

0

将您的规则更改为:

RewriteRule ^chandeliers/modern-chandeliers/ http://www.domain.com/chandeliers/ [R=301,L]

$删除,因为我们只想匹配modern-chandeliers/. 还删除了引号和不需要的转义。您也不需要RewriteCond,因为它不会影响任何东西。请注意,这使得如果有人去http://www.domain.com/chandeliers/modern-chandeliers/a-product-uri,他们会被重定向到http://www.domain.com/chandeliers/,无论modern-chandeliers/. 如果您还想在 之后包含所有内容modern-chandeliers/,则您的规则需要如下所示:

RewriteRule ^chandeliers/modern-chandeliers/(.*)$ http://www.domain.com/chandeliers/$1 [R=301,L]

这使得当有人请求时http://www.domain.com/chandeliers/modern-chandeliers/a-product-uri,他们会被重定向到http://www.domain.com/chandeliers/a-product-uri.

或者,您可以放弃 mod_rewrite 并为此使用 mod_alias :

Redirect 301 /chandeliers/modern-chandeliers /chandeliers
于 2012-07-27T18:20:59.803 回答