如何使用部分参数作为标识符创建 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]