tp5 url 线上访问 在nginx 上 出现404错误,解决办法(1.80nginx 配置 pathInfo)

 转自:http://blog.csdn.net/woshihaiyong168/article/details/54973353

对于ThinkPHP的URL访问路劲如:http://域名/index.php/Index/BlogTest/read,原先的Nginx的是不支持的pathinfo路劲的,导致你在thinkPHP5上面测试的时候,输入相应的URL也不会提示模块名,控制器名或者方法名错误,而是出现一个404找不到的错误,那是因为Nginx无法解析这样的链接,下面讲讲如何配置:

 

首先找到   nginx.conf  

 

1、只实现pathInfo

  笔者的位置在   /usr/local/nginx/conf 下

   vim /usr/local/nginx/conf/nginx.conf

 
  1. location ~ \.php {    #去掉$  
  2.      root          H:/PHPServer/WWW;  笔者这里默认是 html;  
  3.      fastcgi_pass   127.0.0.1:9000;  
  4.      fastcgi_index  index.php;  
  5.      fastcgi_split_path_info ^(.+\.php)(.*)$;     #增加这一句  
  6.      fastcgi_param PATH_INFO $fastcgi_path_info;    #增加这一句  
  7.      fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;  
  8.      include        fastcgi_params;  
  9. }  

 

 

这样就实现了nginx 支持pathInfo

 

 

 

2、实现完全支持tp5 隐藏index.PHP 以及支持 pathinfo     栗子:

 
    1. server {    
    2.         listen       8082;    
    3.         server_name  localhost;    
    4.         charset utf-8;    
    5.         access_log  logs/host.access.log  main;    
    6.         root /usr/local/nginx/html/thinkphp/public;    
    7.         index  index.html index.htm index.php;    
    8.         location / {    
    9.             if (!-e $request_filename) {    
    10.                 rewrite ^(.*)$ /index.php?s=$1 last;    
    11.                 break;    
    12.             }    
    13.         }    
    14.         error_page   500 502 503 504  /50x.html;    
    15.         location = /50x.html {    
    16.             root   html;    
    17.         }    
    18.         location ~ \.php$ {    
    19.            fastcgi_pass   127.0.0.1:9000;    
    20.            fastcgi_index index.php;    
    21.            include fastcgi_params;    
    22.            set $real_script_name $fastcgi_script_name;    
    23.            if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {    
    24.                set $real_script_name $1;    
    25.                set $path_info $2;    
    26.            }    
    27.            fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;    
    28.            fastcgi_param SCRIPT_NAME $real_script_name;    
    29.            fastcgi_param PATH_INFO $path_info;    
    30.         }    
    31.         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {    
    32.             expires 30d;    
    33.             access_log off;    
    34.         }    
    35.         location ~ .*\.(js|css)?$ {    
    36.             expires 7d;    
    37.             access_log off;    
    38.        }    
    39. }    
posted @ 2017-03-04 17:34  不弃初衷  阅读(742)  评论(0编辑  收藏  举报