我正在尝试为通过API访问PHP代码的单页应用程序构build一个nginxconfiguration。 我想要做的是将ajax调用的forms/api/xxx映射到project_directory/php/xxx.php一个文件
所以我有一个像这样的位置块:
location ~* /api/(\w+) { root /path/to/project_directory; try_files /php/$1.php =404; ... call fastcgi gateway }
我需要设置$ fastcgi_script_name,以便设置所有正确的环境variables。 它是否在尝试文件匹配时执行此操作?
您需要忽略$fastcgi_script_name并用您重新映射的值replace任何fastcgi_param指令。 您的位置区块可能开始如下:
location ~* /api/(\w+) { root /path/to/project_root; set $my_script_name /php/$1; try_files $my_script_name =404; fastcgi_param SCRIPT_NAME $my_script_name; fastcgi_param SCRIPT_FILENAME $document_root$my_script_name; ... }
显然注释掉任何冲突的fastcgi_param指令。