Php htaccess url正在重写,脚本中没有查询参数

Php htaccess url正在重写,脚本中没有查询参数,php,url-rewriting,query-parameters,Php,Url Rewriting,Query Parameters,我使用以下规则以目录样式重写url RewriteRule ^post/([0-9]+)$ post.php?pid=$1 通过使用它,我将localhost/post.php?pid=3定向到localhost/post/3 但现在我想以默认方式传递更多参数,如?key=value 例如localhost/post/3?comment\u id=23 但此键值对在脚本中不可用。 当我执行echo$\u GET['comment\u id']时,它不会回显任何内容 如何完成它。您需要使用QSA

我使用以下规则以目录样式重写url

RewriteRule ^post/([0-9]+)$ post.php?pid=$1
通过使用它,我将
localhost/post.php?pid=3
定向到
localhost/post/3

但现在我想以默认方式传递更多参数,如
?key=value

例如
localhost/post/3?comment\u id=23
但此键值对在脚本中不可用。 当我执行
echo$\u GET['comment\u id']
时,它不会回显任何内容

如何完成它。

您需要使用QSA(查询字符串附加)标志。将规则更改为:

RewriteRule ^post/([0-9]+)$ post.php?pid=$1 [L,QSA]
QSA标志将附加pid查询参数,同时在URI中保留原始查询字符串,因此您可以执行以下操作:

$_GET['comment_id']
而且:

$_GET['pid']
您需要使用QSA(查询字符串附加)标志。将规则更改为:

RewriteRule ^post/([0-9]+)$ post.php?pid=$1 [L,QSA]
QSA标志将附加pid查询参数,同时在URI中保留原始查询字符串,因此您可以执行以下操作:

$_GET['comment_id']
而且:

$_GET['pid']

您可以尝试从
^post/([0-9+)$
中删除
$
,这意味着结束时,我不确定这是否真的有效,但这是一个开始的好地方。您可以尝试从
^post/([0-9+)中删除
$
$< /代码>这意味着,我不确定它是否会实际工作,但它是一个开始工作的好地方,谢谢……如果你知道,我可以了解更多关于这个和其他标志的链接,你能给我一个链接吗?@维卡斯代德:使用这个链接:如果这个答案帮助你解决你的问题,请考虑把它标记为“被接受”。因此,在将来面对类似问题的用户将能够轻松地看到它。这是可行的,谢谢。如果你知道,我可以在这里了解更多关于这个和其他标志的链接。你可以给我一些链接。@ VikasDeDe:使用这个链接:如果这个答案帮助你解决了你的问题,请考虑把它标记为“被接受”。,因此,未来面临类似问题的用户将能够轻松地看到它。