无法在.htaccess的重写规则中获取URL的第2个参数

无法在.htaccess的重写规则中获取URL的第2个参数,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我在获取路线的第二个Get参数时遇到另一个问题我无法获取第二个参数这是我编写的规则: RewriteRule ^knowledgebase/topics/([0-9]+)-([A-Za-z0-9-]+)\?page=([0-9]+)?$ topic.php?id=$1&page=$3 [NC,L] 所需的URL为 knowledgebase/topics/6457-microsoft-office-application-information?page=2 此处6457是第一个

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

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

knowledgebase/topics/6457-microsoft-office-application-information?page=2 
此处
6457
是第一个get变量,然后是
-
然后是title
microsoft office应用程序信息,然后是
?page=
然后是我的第二个get参数,它是
2
,但无法获取该页面变量


问题是正则表达式中有错误???

重写url模式中不包括查询字符串。从

什么是匹配的?
如果希望匹配主机名、端口或查询字符串,请分别使用%{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]

谢谢你的回答,我会试试的,会让你知道的