You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

htaccess重写带固定参数URL时新增GET参数无法获取怎么办?

问题根因

  • Apache的RewriteRule仅匹配请求URI的路径段,?之后的查询字符串默认不会被规则匹配、捕获,你试图直接在RewriteRule里捕获code参数的逻辑不生效。
  • 正则写法错误:^login?(.*)$中的?是正则量词,代表前一位字符n可选,实际匹配规则是logi或login开头的路径,和你预期的匹配login?xxx的逻辑完全不符。
  • 你测试得到空code的原因是:(.*)仅能捕获到路径段内容,请求localhost/login?code=xxx的路径段只有/login,因此捕获结果为空。

修复方案

直接给原有规则新增QSA(查询字符串追加)标志即可,该标志会自动将原请求携带的所有查询参数附加到重写后的目标地址,不会覆盖你定义的action参数,修改后的规则如下:

RewriteRule ^login$ account.php?action=log [NC,L,QSA]
RewriteRule ^signup$ account.php?action=reg [NC,L,QSA]

修改后即可正常通过$_GET['code']获取Google OAuth回调的参数值。

内容的提问来源于stack exchange,提问作者DevWay Agence

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 20:45:05