Nginx+PHP-fpm伪静态配置方法。

浏览:8170 发布日期:2016/12/16 分类:系统代码 关键字: TP,伪静态
TP在nginx下的伪静态配置,还是有点坑的。终于配出了完美的配方,在此跟大家共享下。
server {
    listen 80;
    #所有文件放到/var/www/html/xxx目录,而index.php入口文件,及其他静态文件放到/var/www/html/xxx/Html
    #这样可以确保其他类文件不会被访问到。
    root /var/www/html/xxx/Html;
    index index.php index.html index.htm;
    server_name www.xxx.com xxx.com;
    location / {
        #第二个 $uri/ 代表如果访问不到文件,那可以尝试访问目录。(会自动查找目录内的index文件)
        #如果写成/index.php?s=$uri 也可以,但是会导致 /Home/Index/Show?id=1的id参数获取不到。
        #$query_string漏了也会导致上一行的问题
        try_files $uri $uri/ /index.php$uri?$query_string;
    }

    #如果写成location ~ \.php$ { 的形式,会导致/index.php/Home/Index/Show这种路径识别成目录,然后目录不存在,又重新定向到index的死循环。
    #一定要写成如下 php($|/) 的形式。
    location ~ \.php($|/) {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        #PATH_INFO 参数是有用的
        fastcgi_param PATH_INFO $fastcgi_path_info;
        #这一行根据实际情况配,另TP3.2在PHP7.1下完美运行
        fastcgi_pass unix:/run/php/php7.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}
评论( 相关
后面还有条评论,点击查看>>