apache .htaccess 重定向正则表达式

apache .htaccess redirect regex

我需要 apache .htaccess 中的重定向 301 规则:

/catalog/{category_slug}/{product_slug} 

/product/{product_slug}

示例:

/catalog/cat1/prod1 to /product/prod1
/catalog/cat1/prod2 to /product/prod2
/catalog/cat2/prod3 to /product/prod3

还有:

/en/catalog/abc/xyz to /en/product/xyz
/es/catalog/abc/xyz to /es/product/xyz
...
...

你能帮帮我吗?

谢谢 西蒙

在根 .htaccess 文件的顶部使用 mod_rewrite:

RewriteEngine On

RewriteRule ^catalog/[^/]+/([^/]+)/?$ /product/ [R=302,L]

</code> 反向引用包含前面 <code>RewriteRule 模式 中捕获组的“{product-slug}”(第三路径段)。

将此添加到您的 .htaccess 文件的顶部:

RewriteEngine On # no need to do this twice, once is enough

RewriteRule ^([^\/]+\/)?catalog\/[^\/]*\/([^0-9].*) /product/ [R=302,QSA,L]

确保在服务器上启用 mod_rewrite。

这将重定向:

  1. /catalog/abc/xyz/product/xyz
  2. /catalog/abc/123/xyz/product/123/xyz
  3. 由于 QSA 标志,也使用查询字符串重定向。