Apache 针对不同的产品和类别重定向301

Apache 针对不同的产品和类别重定向301,apache,.htaccess,mod-rewrite,redirect,Apache,.htaccess,Mod Rewrite,Redirect,我需要你的帮助做一个301重定向电子商务网站。 产品必须重定向到另一个文件夹,但格式相同,这并不困难,但类别必须更改为以“html”结尾为“/” 产品: 来自www.domain.com/folder\u A/product\u name.html 访问www.domain.com/product_name.html 类别: 来自www.domain.com/folder_A/category_1/subcategory_1-1/subcategory_1-1-1.html 访问www.doma

我需要你的帮助做一个301重定向电子商务网站。 产品必须重定向到另一个文件夹,但格式相同,这并不困难,但类别必须更改为以“html”结尾为“/”

产品:

来自www.domain.com/folder\u A/product\u 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多个类别和子类别,因此如果我不必逐个重定向类别,效果会更好。

对于重定向:
根据评论部分的讨论,您可以尝试以下规则:

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]

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

RedirectMatch 301^/folder_A/([^/]+/.+?)\.html$/$1/
重定向匹配301^/folder_A/([^/]+\.html)$/$1

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

RedirectMatch 301^/folder\u A/([^/]+/.+?)\.html$/$1/

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

对这样的事情:

RewriteCond%{REQUEST_URI}XXXXX
重写规则XXXXX[L,R=301]

RewriteCond%{REQUEST_URI}XXXXX
重写规则XXXXX[L,R=301]

请求的更改是因为在第一种格式(RedirectMatch)中,目标URL最后显示文本“?sef_rewrite=1”,在电子商务软件论坛上询问后,问题似乎是该格式与该软件相关

你能帮我把firsts函数转换成“rewritecond”格式吗


非常感谢

如何通过URL识别产品与类别?产品名称只有字符和下划线?类别中有数字作为surfix?当然这是主要的困难。产品和类别之间的唯一区别是斜杠的数量。除了与产品具有相同斜杠数的主要类别。因此
www.domain.com/folder\u A/foobar.html
可以是产品URL和类别URL?是的,www.domain.com/folder\u A/foobar.html可以是产品URL和类别URL。谢谢,但我认为重写规则的顺序将是相反的。类别的源URL末尾有“.html”,目标URL后面有一个斜杠。当用户在浏览器地址栏中输入
example.com/cat1/cat2/cat3/
时,它将显示
example.com/folder\u a/cat1/cat2/cat3.html
的内容。你想反转吗?是的,当用户输入example.com/folder_a/cat1/cat2/cat3.html时,我需要将其重定向到example.com/cat1/cat2/cat3/I,但不知何故,我忽略了你想要重定向的内容,而不是进行URL重写。我已将代码更改为301重定向。对不起,不适用于我。我明天再试一次。非常感谢。
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]