我在 Ubuntu Hardy 上安装了 nginx 并立即意识到 PHP 脚本正在获取空的请求数组,即无论 GET 还是 POST 都没有通过,甚至 $_REQUEST 数组也是空的。
当我切换回 Apache 时一切正常。
安装nginx版本为0.6.35-0ubuntu1.1~hardy1,PHP为PHP Version 5.2.4-2ubuntu5.10。
可能有什么问题?
小智 6
检查是否在您的 fastcgi 模块的“位置”部分设置
fastcgi_param QUERY_STRING $query_string;
Run Code Online (Sandbox Code Playgroud)
http://wiki.nginx.org/NginxHttpFcgiModule
try_files commandnginx的一个特性query_string是不会自动传递给重写的文件,而是必须显式传递。因为这个_$SERVER['QUERY_STRING']总是空的,所以变量$_REQUEST和$_GET也没有设置。
与重写不同,如果回退不是命名位置,则 $args 不会自动保留。如果您需要保留 args,则必须明确这样做:
try_files $uri $uri/ /index.php?q=$uri&$args;
Run Code Online (Sandbox Code Playgroud)
或者只有参数
try_files $uri $uri/ /index.php?$args;
Run Code Online (Sandbox Code Playgroud)
如果你想保证获得原始参数,然后使用$query_string这些相同$args,除了$query_string是只读的。
| 归档时间: |
|
| 查看次数: |
16236 次 |
| 最近记录: |