我有一个可以通过如下 URL 访问的脚本:
/directory/file.php/methodName
我需要 nginx 来处理这个特定的路由并将其发送到 PHP。目前我的配置只捕获以 .php 结尾的任何内容并将其发送到 PHP。我该如何调整我的配置以处理上述情况?
这是我的 nginx 块:
# Pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# With php5-cgi alone:
#fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
答案1
您的 fastcgi_split_pathinfo 不会执行任何操作,因为该位置不包含斜线并且固定在匹配端。使用如下位置:
location ~ \.php/ {
fastcgi_split_pathinfo ^(.*\.php)(/.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
....
}