zoukankan      html  css  js  c++  java
  • nginx 和 tp兼容pathinfo和rewrite两种url访问方式

    环境:centos7,yum安装的nginx1.10、php-fpm,tp3.2 
    本方法只需要配置nginx.conf的一个文件就可以支持pathinfo和rewrite两种url访问方式

    vim /etc/nginx/nginx.conf

    1、支持rewrite方式: 
    在 location / 处添加以下代码

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

    最终变成

    location / {
                root   html/code;
                index  index.php index.html index.htm;
                if (!-e $request_filename) {
                    rewrite  ^(.*)$  /index.php?s=$1  last;
                    break;
                }
            }

    2.实现pathinfo模式 
    找到有效的 location ~ .php$那部分 
    首先,将这个$去掉, 
    然后里面添加以下两行代码

    fastcgi_split_path_info ^(.+.php)(.*)$;
    fastcgi_param PATH_INFO $fastcgi_path_info;

    最终变成

    location ~ .php {
                root           html/code;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_split_path_info ^(.+.php)(.*)$;
                fastcgi_param PATH_INFO $fastcgi_path_info;         
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        fastcgi_params;
            }
    

    3.重启nginx和php-fpm即可使用了

    service nginx restart
    service php-fpm restart

    本地phpstudy修改实例:
     1 nginx.conf
     2 
     3         root   "D:/WWW";
     4 
     5         location / {
     6 
     7             index  index.html index.htm index.php l.php;
     8 
     9            autoindex  on;
    10 
    11            #add  rewrite
    12 
    13            if (!-e $request_filename) {
    14 
    15                 rewrite  ^(.*)$  /index.php?s=$1  last;
    16 
    17                 break;
    18 
    19             }
    20 
    21         }
    22 
    23  
    24 
    25         location ~ .php(.*)$  {    //这边$去掉试试
    26 
    27             fastcgi_pass   127.0.0.1:9000;
    28 
    29             fastcgi_index  index.php;
    30 
    31             fastcgi_split_path_info  ^((?U).+.php)(/?.+)$;
    32 
    33             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    34 
    35             fastcgi_param  PATH_INFO  $fastcgi_path_info;
    36 
    37             fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
    38 
    39             include        fastcgi_params;
    40 
    41             #add pathinfo
    42 
    43             fastcgi_split_path_info ^(.+.php)(.*)$;
    44 
    45             fastcgi_param PATH_INFO $fastcgi_path_info;
    46 
    47         }

    参考:http://blog.csdn.net/jo_andy/article/details/52598097

  • 相关阅读:
    andrew ng 学习
    360一些笔试题
    安装visual studio2010提示“Windows Installer 服务不可用”的解决办法
    算法学习从赌钱游戏看PageRank算法
    jQuery Masonry 一个 jQuery动态网格布局的插件
    国内HTML5前端开发框架汇总
    Windows Performance Monitor 学习笔记
    ThinkPad预装win8系统机型安装win7系统的操作指导
    jQuery的Ajax的自动完成功能控件
    JavaScript的Forms验证Parsley.js
  • 原文地址:https://www.cnblogs.com/xujian2016/p/8568423.html
Copyright © 2011-2022 走看看