【发布时间】:2015-03-21 14:30:19
【问题描述】:
我是 nginx 和 php 的初学者,所以请原谅我的基本问题。
对于基于 RESTful 的 API(nginx + php),我需要一些有关 nginx 配置的帮助。
这里是 nginx 配置的相关 sn-p(建议 here)用于将所有 /api/v1/* 请求重定向到我的 apiv1.php 脚本:
server {
server_name myServer;
root /usr/share/nginx/html;
location /api/v1/ {
try_files $uri $uri/ /apiv1.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
现在的问题是,当我在浏览器中键入 http://myServer//api/v1/resource/GetInfo 时,apiv1.php 脚本似乎没有收到“resource/GetInfo”。实际上,_GET 和 _REQUEST 是空的,但 _SERVER 看起来没问题!
在我的 /etc/php5/fpm/php.ini 中,启用了以下相关配置:
request_order = "GP"
variables_order = "GPCS"
register_argc_argv = Off
auto_globals_jit = On.
你可能知道为什么 php 的 _GET 和 _REQUEST 是空的吗?这仅与我的 php 配置有关吗?
最好的问候, M.
【问题讨论】:
-
$args 仅包含 GET 参数(即查询字符串)。因此,在您的示例中,您将在 try_files 指令中将查询字符串(如果有)附加到后备 uri。
-
谢谢,看来我错过了。