配置 nginx 来处理 PHP 文件和另一种情况

配置 nginx 来处理 PHP 文件和另一种情况

我有一个可以通过如下 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;
    ....
}

相关内容