如何使用部分参数作为标识符创建 htaccess 重写规则
How to create an htaccess rewrite rule with part of parameter as identifier
我需要一些帮助来解决我正在努力解决的重写规则。
我有下面的现有规则,效果很好,重定向如下:
www.site.com/page.php?type=1&category=2&cond=3
redirected to
www.site.com/1/2/3/
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/$ /page.php?type=&category=&cond= [L]
现在我需要创建一个不会干扰上述规则的新规则。
所以这个url:
www.site.com/page.php?type=1&category=2&page=page-1
should redirect to:
www.site.com/1/2/page-1/
显然,浏览器应该以某种方式区分 www.site.com/1/2/3/
和 www.site.com/1/2/page-1/
。
这个差异可以是第三个参数的一部分,它将始终保持不变:page-
.
我知道我需要以某种方式修改新规则的这一部分([^/]*)
,但到目前为止我所做的一切都不起作用。
有什么建议我应该如何完成这个?
按以下顺序排列这 2 个规则:
RewriteRule ^([^/]+)/([^/]+)/(page-[^/]+)/?$ /page.php?type=&category=&cond= [L,QSA,NC]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ /page.php?type=&category=&cond= [L,QSA]
您应该可以按照这种方式制定规则。
RewriteRule ^([^/]*)/([^/]*)/page-([^/]*)/?$ /page.php?type=&category=&page=page- [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/?$ /page.php?type=&category=&cond= [L]
我需要一些帮助来解决我正在努力解决的重写规则。
我有下面的现有规则,效果很好,重定向如下:
www.site.com/page.php?type=1&category=2&cond=3
redirected to
www.site.com/1/2/3/
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/$ /page.php?type=&category=&cond= [L]
现在我需要创建一个不会干扰上述规则的新规则。
所以这个url:
www.site.com/page.php?type=1&category=2&page=page-1
should redirect to:
www.site.com/1/2/page-1/
显然,浏览器应该以某种方式区分 www.site.com/1/2/3/
和 www.site.com/1/2/page-1/
。
这个差异可以是第三个参数的一部分,它将始终保持不变:page-
.
我知道我需要以某种方式修改新规则的这一部分([^/]*)
,但到目前为止我所做的一切都不起作用。
有什么建议我应该如何完成这个?
按以下顺序排列这 2 个规则:
RewriteRule ^([^/]+)/([^/]+)/(page-[^/]+)/?$ /page.php?type=&category=&cond= [L,QSA,NC]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ /page.php?type=&category=&cond= [L,QSA]
您应该可以按照这种方式制定规则。
RewriteRule ^([^/]*)/([^/]*)/page-([^/]*)/?$ /page.php?type=&category=&page=page- [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/?$ /page.php?type=&category=&cond= [L]