![配置 nginx 来处理 PHP 文件和另一种情况](https://linux22.com/image/613734/%E9%85%8D%E7%BD%AE%20nginx%20%E6%9D%A5%E5%A4%84%E7%90%86%20PHP%20%E6%96%87%E4%BB%B6%E5%92%8C%E5%8F%A6%E4%B8%80%E7%A7%8D%E6%83%85%E5%86%B5.png)
我有一个可以通过如下 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;
....
}