nginx 下QUERY_STRING 的一个bug

  2009-12-25


配置选项:
location / {
root “D:/xampp/htdocs/teeume.com”;
try_files $uri /t.php;
}

实现重写后,我们用 /search/?q=test 请求,会发现$_GET[‘q’] 无值,$_SERVER[‘QUERY_STRING’]无值。

这就影响了正常的取值方式。
我们做如下修正:
$uri = $_SERVER[‘REQUEST_URI’];
$uri = strtok($uri, ‘?’);
$qs = $_SERVER[‘QUERY_STRING’] = strtok(‘?’);
parse_str($qs, $qs_arr);
$_REQUEST = array_merge($_REQUEST, $qs_arr);