.htaccess 的正则表达式规则

Regex rule for .htaccess

谁能帮我解决正则表达式规则问题?

如果访问的页面是 https://example.com/shop/product,那么我需要将用户重定向到 https://example.com/product,但是如果访问的页面是 https://example.com/shop/page/2,我什么都不用做。

有可能,该用户登陆 https://example.com/shop/category/child-category/product,对于这个例子,我需要重定向到 https://example.com/category/child-category/product

我已经写了这个规则:RewriteRule ^shop/(.*)$ / [R=301,L],但是如果他在第二页或其他页面,这个规则会从这个页面重定向用户。

您可以像这样使用否定的先行条件:

RewriteRule ^shop/(?!page/)(.+)$ / [R=301,L,NC]

(?!page/) 是一个否定的先行条件,如果 page/ 出现在 shop/

之后,匹配将失败