0

我在获取路线的第二个获取参数时遇到另一个问题我无法获取第二个参数这是我写的规则:

RewriteRule ^knowledgebase/topics/([0-9]+)-([A-Za-z0-9-]+)\?page=([0-9]+)?$ topic.php?id=$1&page=$3 [NC,L] 

预期的网址是

knowledgebase/topics/6457-microsoft-office-application-information?page=2 

6457是第一个获取变量,-然后是标题microsoft-office-application-information,然后?page=是我的第二个获取参数, 2但无法获取该页面变量

什么是正则表达式有问题?

4

1 回答 1

1

查询字符串不包含在重写 url 模式中。来自RewriteRule 指令

什么是匹配的?
如果您希望匹配主机名、端口或查询字符串,请分别使用带有 %{HTTP_HOST}、%{SERVER_PORT} 或 %{QUERY_STRING} 变量的 RewriteCond。

您必须单独提取该部分

RewriteCond %{QUERY_STRING} page=([0-9]+)
RewriteRule ^knowledgebase/topics/([0-9]+)-[A-Za-z0-9-]+ topic.php?id=$1&page=%1 [NC,L]
于 2013-02-15T17:06:46.300 回答