Apache (mod)重写无序参数

Apache (mod)重写无序参数,apache,mod-rewrite,Apache,Mod Rewrite,是否可以在URL中重新写入顺序不同的参数 例如,我们可能有一个url,如 /products/type/animal/id/123456 但它也可能表现为: /products/id/ab123456/type/animal 使用mod rewrite语句,如 /产品[.html?](?:/id/([^/])?)/(?:/type/([^/])?)/?“products.html?id=$1&type=$2”[L,NC] 在第一个例子中效果很好,但在第二个例子中当然失败了。这有什么关

是否可以在URL中重新写入顺序不同的参数

例如,我们可能有一个url,如


/products/type/animal/id/123456
但它也可能表现为:


/products/id/ab123456/type/animal
使用mod rewrite语句,如


/产品[.html?](?:/id/([^/])?)/(?:/type/([^/])?)/?“products.html?id=$1&type=$2”[L,NC]

在第一个例子中效果很好,但在第二个例子中当然失败了。这有什么关系吗?
编辑:有多个键/值对(可能是7或8),因此不可能使用通用/([^/]+)/?/([^/]+)/([^/]+)/类型正则表达式。

只需编写与每个可能的源顺序匹配的多个规则

这主意不错,有几个参数,但可能有几十种组合。只有2个参数,2个组合。3个参数、6个组合等。 /products[.html?]?(?:/id/([^/])?)/?(?:/type/([^/])?)/? "products.html?id=$1&type=$2" [L, NC]