2012-07-27 54 views
0

我目前(合併)移動類別,兒童產品將不復存在。 由於我們有很多產品,所以在父類別下重定向所有產品是有意義的。重定向過時的類別和兒童產品通過301重定向

例URL:

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

(其中 '*'=兒童產品/網址)

重定向URL:

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

當前顯示爲:

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

有什麼問題嗎? – 2012-07-27 17:33:10

+0

我正在使用的代碼不重定向子產品,只有父類別。 – user1558277 2012-07-27 18:15:59

回答

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 
+0

謝謝Jon Lin, - 提供的代碼非常棒! 對於那些使用CS-Cart和移動類別的人:A)如果您正在將產品移到另一個類別 - 請使用Jon的解決方案。 B)如果您將所有產品從多個類別轉移到一個類別(合併),請使用以下代碼:RewriteRule^category1/category2 /(.*)$ http://www.domain.com/newcategory/ [R = 301, L] – user1558277 2012-07-27 18:31:09