.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/
之后,匹配将失败
谁能帮我解决正则表达式规则问题?
如果访问的页面是 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/