.htaccess htaccess重写规则-多个可选参数,没有特定顺序

.htaccess htaccess重写规则-多个可选参数,没有特定顺序,.htaccess,rewrite,.htaccess,Rewrite,我需要在我的网页上有友好的URL,我正在为此使用htaccess文件。 实际上这很简单,但有些页面的url可以有多个可选参数,没有特定的顺序,我无法想象这些页面的重写规则shpuld是什么样子 例如,显示数据库中大量电影列表的页面。您可以按介质dvd、蓝光、年龄、类型进行过滤。您可以按字母表、评级等对结果进行排序,还可以切换页面。所有这些都适用于url参数 index.php?movies 显示所有电影,无过滤器,无排序。重写的url应位于以下位置: /movie 到目前为止没有问题。但它也

我需要在我的网页上有友好的URL,我正在为此使用htaccess文件。 实际上这很简单,但有些页面的url可以有多个可选参数,没有特定的顺序,我无法想象这些页面的重写规则shpuld是什么样子

例如,显示数据库中大量电影列表的页面。您可以按介质dvd、蓝光、年龄、类型进行过滤。您可以按字母表、评级等对结果进行排序,还可以切换页面。所有这些都适用于url参数

index.php?movies
显示所有电影,无过滤器,无排序。重写的url应位于以下位置:

/movie
到目前为止没有问题。但它也可以是这样的:

index.php?movies&medium=1&genre=3&age=17&sort=alphabet&page=15
RewriteEngine On
RewriteBase /

# reucrsion based rule to convert /n1/v1/n2/v2 to /?n2=v2&n1=v1
RewriteRule "([^/]+)/([^/]*)(/.*)?$" $3?$1=$2 [L,QSA]
这将返回dvd上所有R级恐怖电影的第15页,按名称排序

这些参数没有特定的顺序,都是可选的。如果我的规则是这样的

RewriteRule ^movies/([0-9]+)/([0-9]+)/?$
您如何知道第一个参数是medium还是page或其他什么? 有没有办法确定参数

/movies/genre-3/page-15

多谢各位

您可以使用如下规则:

index.php?movies&medium=1&genre=3&age=17&sort=alphabet&page=15
RewriteEngine On
RewriteBase /

# reucrsion based rule to convert /n1/v1/n2/v2 to /?n2=v2&n1=v1
RewriteRule "([^/]+)/([^/]*)(/.*)?$" $3?$1=$2 [L,QSA]

这会将/movies/medium/1/genre/3&age/17/sort/alphabet/page/15这样的URI重写为:/?page=15&sort=alphabet&3&age=17&1=genre&movies=medium

您可以使用这样的URL:/movies/medium?1/genre/3&age/17/sort/alphabet/page=15来支持URI中的多个参数。但是重写规则看起来像什么呢?ok在下面发布了我的答案,看看这对你是否有用。