lnmp开启pathinfo,支持index.php/xx/xx这种脑残URL

有些程序的URL是www.xxoo.com/index.php/xx/xx/这种模式,典型thinkphp爱用的脑残URL模式。lnmp环境默认是不支持,打开会显示404,需要lnmp支持pathinfo

找到虚拟主机对应的xxoo.conf文件,找到:

location ~ [^/]\.php(/|$)
{
    # comment try_files $uri =404; to enable pathinfo
    try_files $uri =404;
    fastcgi_pass  unix:/tmp/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    include pathinfo.conf;
}

.

替换成:

if (!-e $request_filename)
{
    rewrite ^\/([^\.]*)$ /index.php/$1 last;
    break;
    }
    location ~ \.php
    {
    try_files $uri =404;
    fastcgi_pass unix:/tmp/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    set $path_info "";
    set $real_script_name $fastcgi_script_name;
    if ($fastcgi_script_name ~ "^(.+\.php)(/.+)$") {
    set $real_script_name $1;
    set $path_info $2;
    }
    fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
    fastcgi_param SCRIPT_NAME $real_script_name;
    fastcgi_param PATH_INFO $path_info;
}

然后重启nginx即可。