• 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

  • 相关阅读:
    SettingWithCopyWarning
    统计运算
    数据清洗
    dataframe 索引
    那些拯救我的快捷键
    如何拒绝那些哭天抢地向你求救结果把你坑了的同事?
    Linux 笔记
    数据可视化:桑基图
    敏捷
    持续集成的概念
  • 原文地址:https://www.cnblogs.com/xujian2016/p/8568423.html
Copyright © 2020-2023  润新知