与mod_rewrite合并的参数

时间:2014-06-14 11:18:35

标签: php mod-rewrite

我目前正在使用以下行将/pages/group/index.php?id=1&slug=example-name转换为group/1-example-name,这完全有效,我可以使用$_GET检索ID和slug但是当我尝试添加页码的附加参数,我无法检索页码,它成为slug的一部分。

两个参数

RewriteRule ^group/([^-]*)-([^.]*)$ /pages/group/index.php?id=$1&slug=$2 [L]

附加第三个参数

RewriteRule ^group/([^-]*)-([^.]*)/([0-9]+)$ /pages/group/index.php?id=$1&slug=$2&page=$3 [L]

因此,如果ID参数为1,则slug参数为hello-example,页面参数为10 - ID将完全返回,但slug将返回为hello-example / 10,页码将返回为空。

非常感谢任何帮助:)!

1 个答案:

答案 0 :(得分:0)

正如评论中已经指出的那样,字符串“some-title / pagenumber”由第一个重写符号匹配。因此它永远不会被第二个重写者匹配。在这种情况下,您只需要以相反的顺序匹配规则,因此只需切换规则的顺序:

RewriteRule ^group/([^-]*)-([^.]*)/([0-9]+)$ /pages/group/index.php?id=$1&slug=$2&page=$3 [L]
RewriteRule ^group/([^-]*)-([^.]*)$ /pages/group/index.php?id=$1&slug=$2 [L]