代码之家  ›  专栏  ›  技术社区  ›  Spencer May

在htaccess中组合重写规则会停止对$\u GET变量的访问

  •  1
  • Spencer May  · 技术社区  · 6 年前

    在我开始之前,让我说我已经做了很多研究来解决这个问题,但我认为我对这个问题了解得不够,无法找到解决方案。

    在我的 .htaccess 我有一个重写规则要将通配符子域发送到 portal/index.php 将子域作为get参数。

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteCond %{REQUEST_URI} !index\.php
    RewriteCond %{HTTP_HOST} ^(.+?)\.mywebsite\.com$
    RewriteRule .* /portal/index.php?sub_access=%1 [L]
    

    除了我不能再使用 $_GET 脚本中的变量。如果我访问 portal.mywebsite.com/login/?reset ,使用 var_dump() 始终生成 array(1) { ["sub_access"]=> string(6) "portal" }

    有没有办法附加 $\u获取 在my中生成的变量。htaccess?我确信我可以通过抓取url来创建自己的get变量捕获,但我更希望不要失去对该功能的访问。

    I <3 $_GET
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   Halcyon    6 年前

    改变

    RewriteRule .* /portal/index.php?sub_access=%1 [L]
    

    RewriteRule .* /portal/index.php?sub_access=%1 [L,QSA]
    

    追加剩余的查询字符串。