具有一个固定参数的 htaccess 不起作用?

htaccess with one fixed parameter not working?

我正在尝试用 1 个固定参数重写 URL。

它用这个很好用

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

但是当我添加 Google oauth 它 returns 像这样 URL

localhost/login?code=.....

所以我改成了

RewriteRule ^login?(.*)$ account.php?action=log&code= [NC,L]

但我无法通过 $_GET['code'] 获取代码变量 和 var_dump($_GET) returns array(2) { ["action"]=> string(3) "log" ["code"]=> string(0) "" }

RewriteRule 仅匹配 URL 的路径组件,您不能用它检查查询字符串,这需要 RewriteCond。

但是除了已经存在的 ^login$ 重定向之外,您不应该 需要 任何东西 - 只需添加 QSA 标志,以便原始查询字符串与您现有的合并。

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