配置Nginx支持Pathinfo,并隐藏入口文件

Nginx服务器默认不支持pathinfo, 在需要pathinfo支持的程序中(如laravel,TP),则无法支持”/index.php/Home/Index/index”这种网址.

要是我们的网站支持Pathinfo模式的路由,可采用以下配置:
修改之前:

location ~ \.php$ {
    fastcgi_pass   127.0.0.1:9000;
    include snippets/fastcgi-php.conf;
}

修改之后:

location ~ \.php(.*)$ { # 正则匹配.php后的pathinfo部分
    fastcgi_pass   127.0.0.1:9000;
    include snippets/fastcgi-php.conf;
    fastcgi_param PATH_INFO $1; # 把pathinfo部分赋给PATH_INFO变
}

如果还需要隐藏我们的入口文件(一般为index.php),那么在添加以下配置即可:

location / {
                if ( -f $request_filename) {
                        break;
                }
                if ( !-e $request_filename) {
                        rewrite ^(.*)$ /index.php/$1 last;
                        break;
                }
        }

你可能感兴趣的:(配置Nginx支持Pathinfo,并隐藏入口文件)