.htaccess重写规则是否导致我的查询字符串为空?

时间:2018-11-22 21:13:16

标签: php html .htaccess

这是我的问题:

  • 我正在通过 $ _ GET 向PHP脚本
  • 发送名为'sort'的查询字符串
  • 脚本可以识别查询,我可以使用它
  • 5秒后,我调用了相同的PHP函数,但查询为空
  • 我还提到查询始终在URL &sort = new 上可见,因此我可以在那里看到它,只是第一次就无法使用
  • 我也尝试过解析URL并直接将查询添加到查询中,但是它也是空的
  • 我需要它能够正常工作,并且能够像我调用PHP脚本一样使用该字符串多次

因为我正在使用一些重写规则,所以我的URL看起来像这样(我想可能不是问题的.php)

example.com/group/groupName?&sort=new

下面是所有使用的.htaccess重写规则,我认为它们可能会导致问题

RewriteRule ^group/?$                                       index.php?a=group                           [NC]
RewriteRule ^group/([^/]+)/?$                               index.php?a=group&name=$1                   [QSA]
RewriteRule ^group/deleted/([^/]+)/?$                       index.php?a=group&deleted=$1                [NC]
RewriteRule ^group/([^/]+)/([^/]+)/?$                       index.php?a=group&name=$1&r=$2              [NC]
RewriteRule ^group/([^/]+)/search/([^/]+)/?$                index.php?a=group&name=$1&search=$2         [NC]
RewriteRule ^group/([^/]+)/friends/([^/]+)/?$               index.php?a=group&name=$1&friends=$2        [NC]

所有这些ReWrite规则都在网站上使用,但我不知道是引起问题的原因还是PHP代码中的问题。

编辑: 我在htaccess中使用

RewriteRule ^ https://www.%1%{REQUEST_URI} [NE,L,R]

这就是我尝试使用PHP的方式:

$parts = parse_url($_SERVER["REQUEST_URI"]);
parse_str($parts['query'], $query);
$sortBy =  $query['sort'];

0 个答案:

没有答案