【问题标题】:htaccess with one fixed parameter not working?具有一个固定参数的 htaccess 不起作用?
【发布时间】:2021-11-12 17:21:54
【问题描述】:

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

  • localhost/login
  • localhost/signup

  • localhost/account.php?action=log
  • localhost/account.php?action=reg

这个效果很好

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

但是当我添加 Google oauth 它返回一个这样的 URL

localhost/login?code=.....

所以我改成

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

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

【问题讨论】:

    标签: apache .htaccess url-rewriting


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-02
      • 1970-01-01
      • 2014-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-05
      相关资源
      最近更新 更多