对于产品和类别,重定向301不同

时间:2014-10-14 10:24:52

标签: apache .htaccess mod-rewrite redirect

我需要您的帮助才能建立301重定向电子商务网站。 产品必须重定向到另一个文件夹,但格式相同,没有任何困难,但类别必须更改为以“html”结尾为“/”。

产品:

  

来自www.domain.com/folder_A/product_name.html
  到www.domain.com/product_name.html

分类:

  

来自www.domain.com/folder_A/category_1/subcategory_1-1/subcategory_1-1-1.html
  到www.domain.com/category_1/subcategory_1-1/subcategory_1-1-1 /

你能帮我在htaccess中进行这种重定向吗? 我有超过1500个类别和子类别,如果我不必逐个重新定向类别,那就更好了。

3 个答案:

答案 0 :(得分:0)

用于重定向:

RedirectMatch 301 ^/folder_A/((.*)[0-9]).html$ http://www.domain.com/$1/
RedirectMatch 301 ^/folder_A/((.*)[^0-9]).html$ http://www.domain.com/$1.html

答案 1 :(得分:0)

基于评论部分的讨论,您可以尝试以下规则:

RewriteEngine On

# specific category pages
RewriteRule ^folder_A/(category_1|category_2|category_3)\.html$ /$1 [L,NC,R=301]

# rest of the categories
RewriteRule ^folder_A/([^/]+/.+?)\.html$ /$1 [L,NC,R=301]

# all products
RewriteRule ^folder_A/([^/.]+\.html)$ /$1 [L,NC,R=301]

答案 2 :(得分:0)

最后,Kums和Anubhava提供的两种解决方案的混合物对我有用。

RedirectMatch 301 ^/folder_A/([^/]+/.+?)\.html$ /$1/ RedirectMatch 301 ^/folder_A/([^/.]+\.html)$ /$1

如果我能再次请你帮忙,现在这些功能需要改变这种格式:

RedirectMatch 301 ^/folder_A/([^/]+/.+?)\.html$ /$1/

RedirectMatch 301 ^/folder_A/([^/.]+\.html)$ /$1

对于这样的事情:

RewriteCond %{REQUEST_URI} XXXXX RewriteRule XXXXX [L,R=301]

RewriteCond %{REQUEST_URI} XXXXX RewriteRule XXXXX [L,R=301]

此请求的更改是因为使用第一种格式(RedirectMatch),目标URL最终显示为此文本“?sef_rewrite = 1”,并在询问电子商务软件论坛后,似乎问题是此格式相关到这个软件。

您能否帮助我将第一个功能转换为“重写”格式?

非常感谢