Hello all,
I found a problem when using try_files, it seems a tiny bug here.
Configuration section:
location / {
root /home/tee/abc.com;
try_files $uri /t.php;
}
other configuration sections like fastcgi settings are omitted. In t.php
file, I have some lines of code there:
<?php
var_dump($_GET['q']);
print_r($_SERVER);
Now we will try to visit the site http://abc.com/search/?q=test
$_SERVER['QUERY_STRING'] should be q=test and $_GET['q'] should be test
as usual.
BUT, we will see $_SERVER['QUERY_STRING'] and $_GET['q'] are both empty
here.
Is it a bug or configuration error?
Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,33365,33365#msg-33365
I have written a php code to solve the problem.
<?php
$uri = $_SERVER['REQUEST_URI'];
$qs = $_SERVER['QUERY_STRING'];
$uri = strtok($uri, '?');
$qs = $_SERVER['QUERY_STRING'] = strtok('?');
parse_str($qs, $qs_arr);
$_REQUEST = array_merge($_REQUEST, $qs_arr);
My blog post here: http://seaprince.cn/nginx-query_string-bug/
Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,33365,33366#msg-33366
On Fri, Dec 25, 2009 at 2:52 PM, seaprince [email protected] wrote:
nginx Info Page
I believe it should be
try_files $uri /t.php?$args;
–
O< ascii ribbon campaign - stop html mail - www.asciiribbon.org