TPshop5最新版 安装 nginx 开启PATHINFO 模式资源加载路径加载失败问题,适用tp3.2PATHINFO模式REWRITE模式

  1. server {  
  2.         listen 80;  
  3.         server_name xxxxx.cn;  
  4.         root /alidata/www/xxxx;  
  5.         index index.php index.html index.htm;  
  6.   
  7.         location / {  
  8.             index  index.htm index.html index.php;    
  9.             if (!-e $request_filename){  
  10.                 #地址作为将参数rewrite到index.php上。tp框架接收s参数为controller和action,不少框架都利用这种方式来实现伪pathinfo模式(pathinfo为php功能,nginx并不支持)  
  11.                 rewrite ^/(.*)$ /index.php?s=$1 last;  
  12.                 break;  
  13.             }  
  14.         }  
  15.         #上面的正则能解决不带xx.php的,这条正则是为了rewrite url中带index.php/admin/admin/login这种,思路是一样的,将index.php后的字符串当成参数  
  16.         #location ~ /.*.php/ {  
  17.         #        rewrite ^(.*?/?)(.*.php)(.*)$ /$2?s=$3 last;  
  18.         #break;  
  19.         #}  
  20.           
  21.       location ~ .*.(php|php5)?$  
  22.         {  
  23.                 #fastcgi_pass  unix:/tmp/php-cgi.sock;  
  24.                 fastcgi_pass  127.0.0.1:9000;  
  25.                 fastcgi_index index.php;  
  26.                 fastcgi_split_path_info  ^((?U).+.php)(/?.+)$;  
  27.                 fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;  #开启pathinfo  
  28.                 fastcgi_param  PATH_INFO  $fastcgi_path_info;  
  29.                 fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;  
  30.                 include        fastcgi_params;  
  31.         }  
  32.         location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$  
  33.         {  
  34.                 expires 30d;  
  35.         }  
  36.         location ~ .*.(js|css)?$  
  37.         {  
  38.                 expires 1h;  
  39.         }  
  40.         access_log  /alidata/log/nginx/access/diancan.log;  
  41. }  

PS:

1、在上文中配置规则中一种是携带index.php ,一种是不需要的二者选其一即可,PATHINFO带index.php,REWRITE则不带index.php。

2、如果项目为二级文件夹或者是多项目则需要修改红色的框中对应蓝色框部分。如果是一级文件夹则蓝色框不需为上边代码。

3、解决NGINX PHP "No input file specified"报错问题?

 更改php.ini
首先php.ini的配置中把
;cgi.fix_pathinfo=0   改为

cgi.fix_pathinfo=1

转发自: https://blog.csdn.net/qq_36427770/article/details/72930683

原文地址:https://www.cnblogs.com/hoewang/p/10257230.html