使用RewriteRule时PHP无法读取额外GET参数的解决方案咨询
解决RewriteRule丢失追加查询参数的问题
你的问题出在RewriteRule默认会用目标URL的查询串替换原URL的查询参数,所以当你追加?extra=1时,会被?name=$1&page=$2覆盖,导致$_GET['extra']无法读取。
解决这个问题只需要添加**QSA(Query String Append)**标志,它的作用是把原URL中的查询参数追加到重写后的查询串末尾,而不是替换。
修改后的规则如下:
RewriteRule ^cards/([^/]*)/([^/]*)$ /cards/?name=$1&page=$2 [L,QSA]
这样,当你访问类似example.com/cards/foo/bar?extra=1的URL时,重写后的实际请求会是/cards/?name=foo&page=bar&extra=1,此时$_GET['extra']就能正常读取到值1了。
内容的提问来源于stack exchange,提问作者thanksalotquoraguy
相关产品推荐
相关产品推荐

