对于thinkphp框架项目的访问格式有多种,其中pathinfo是默认的基本访问格式,格式为:http://hostname:port/index.php/模块名/action名/参数1/参数1的值/

pathinfo其实就是一个参数,可以通过$_SERVER['PATH_INFO']获得,thinkphp框架通过解析它来找到对应的模块和方法。

apache服务器默认是支持pathinfo的,但是nginx服务器默认不支持这种格式,需要进行配置,配置方式如下:

以下是mac下的MNMP中的nginx配置

1. 找到ngingx的配置文件nginx.conf

在server里的location项,

修改前为:
  1. server {
  2. listen 7888;
  3. server_name local.tpdemo.com;
  4. root /Applications/MAMP/htdocs/thinkphp_demo/;
  5.  
  6. access_log /Applications/MAMP/logs/nginx_tpdemo_access.log;
  7. error_log /Applications/MAMP/logs/nginx_tpdemo_error.log debug;
  8.  
  9. location / {
  10. index index.html index.htm index.php;
  11. location ~ \.php {
  12. try_files $uri =404;
  13. fastcgi_pass unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI.sock;
  14. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  15. include fastcgi_params;
  16. }
  17. }
  18. }

  

修改后为:

  1. server {
  2. listen 7888;
  3. server_name local.tpdemo.com;
  4. root /Applications/MAMP/htdocs/thinkphp_demo/;
  5.  
  6. access_log /Applications/MAMP/logs/nginx_tpdemo_access.log;
  7. error_log /Applications/MAMP/logs/nginx_tpdemo_error.log debug;
  8.  
  9. location / {
  10. index index.html index.htm index.php;
                   #重写隐藏掉index.php部分
  11. #如果请求既不是一个文件,也不是一个目录,则执行一下重写规则
  12. if (!-e $request_filename)
  13. {
  14. #地址作为将参数rewrite到index.php上。
  15. rewrite ^/(.*)$ /index.php/$1;
  16. #若是子目录则使用下面这句,将subdir改成目录名称即可。
  17. #rewrite ^/subdir/(.*)$ /subdir/index.php/$1;
  18. }
  19. location ~ \.php {
  20. try_files $uri =404;
  21. fastcgi_pass unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI.sock;
  22. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  23. include fastcgi_params;
  24. #定义变量 $path_info ,用于存放pathinfo信息
  25. set $path_info "";
  26. #定义变量 $real_script_name,用于存放真实地址
  27. set $real_script_name $fastcgi_script_name;
  28. #如果地址与引号内的正则表达式匹配
  29. if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
  30. #将文件地址赋值给变量 $real_script_name
  31. set $real_script_name $1;
  32. #将文件地址后的参数赋值给变量 $path_info
  33. set $path_info $2;
  34. }
  35. #配置fastcgi的一些参数
  36. fastcgi_param SCRIPT_NAME $real_script_name;
  37. fastcgi_param PATH_INFO $path_info;
  38. }
  39. }
  40. }

  

  

2. 编辑php.ini文件
注释掉配置项cgi.fix_pathinfo(前面加;)
3.重启phpcgi 和 nginx

 

MNMP下nginx1.6开启支持pathinfo配置,支持thinkphp的URL格式的更多相关文章

  1. nginx低版本不支持pathinfo模式,thinkphp针对此问题的解决办法

    将一个thinkphp项目从apache环境移到nginx1.2上,怎奈,nginx这个版本默认不支持pathinfo模式 首先,编辑nginx的虚拟主机配置文件 location ~ .*.(php ...

  2. wdcp 下apache模式开启https访问,支持多站点

    1.vi conf/httpd.conf 查找 #Include conf/extra/httpd-ssl.conf (删除行首的配置语句注释符号"#"保存退出) 2.vi con ...

  3. Visual Studio Code 支持TensorFlow配置支持

    首先选择解释器 选择TensorFlow版本的conda版本 (当然你如果是通过python单独安装的TensorFlow也可以) 编辑器输入代码,进行测试 import tensorflow as ...

  4. linux 下crontab相关定时触发的配置规则

    linux 下crontab相关定时触发的配置规则: 1.基本格式 :* * * * * command(分 时 日 月 周 命令)2.取值范围:分钟1-59 每分钟用*或者 */1表示小时1-23( ...

  5. nginx 和 tp兼容pathinfo和rewrite两种url访问方式

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

  6. nginx、TP框架实现兼容pathinfo和rewrite两种url访问方式

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

  7. Nginx下配置ThinkPHP的URL Rewrite模式和pathinfo模式支持

    前面有关于lnmp环境的搭建,在此就不在赘述.下面就简述thinkPHP如何在nginx下开启url_rewrite和pathinfo模式支持 主要有两个步骤: 一.更改php.ini将;cgi.fi ...

  8. 在Apache下开启SSI配置支持include shtml html和快速配置服务器

    作为前端开发,使用Apache快速搭建服务器极为方便. 1.找到apach安装目录,找到conf目录下 的httpd.conf 使用SSI(Server Side Include)的html文件扩展名 ...

  9. Nginx 虚拟主机下支持Pathinfo并隐藏入口文件的完整配置

    server { listen 80; server_name zuqiu.com; # 设置你的域名 index index.html index.htm index.php; root D:/wn ...

随机推荐

  1. hdu 1151 Air Raid 最小路径覆盖

    题意:一个城镇有n个路口,m条路.每条路单向,且路无环.现在派遣伞兵去巡逻所有路口,伞兵只能沿着路走,且每个伞兵经过的路口不重合.求最少派遣的伞兵数量. 建图之后的就转化成邮箱无环图的最小路径覆盖问题 ...

  2. PyQt4 安装

    安装PyQt4很简单,从官网下载相应的安装包即可. 需要注意的是:应该根据你电脑上已经装好的python版本选择相应的PyQt4安装包. PyQt4的安装目录一定要选python的安装目录,比如我的P ...

  3. hiho_offer收割18_题解报告_差第四题

    I.求逆元欧几里得方法 II.模拟细心+耐心 *本人感悟:自己的错误在于:对于这道模拟题没有耐心静下来一字一字看题,一行一行调错,一步一步调试,我要引以为戒. III.dpf[i][j][k]=max ...

  4. Chapter 9 (排序)

    1.排序算法: //****************************Sort.h******************************************** #ifndef SOR ...

  5. vue+webpack开发(一)

    一开始接触这个vue+webpack的时候,实在是摸不着头脑,根本无从下手. 但是经过这两天的研究,其实你会发现vue其实并不难,难度都在webpack你对webpack的理解. webpack顾名思 ...

  6. docker mysql authentication_string client does not support authentication 连接问题

    docker安装mysql后,本地navicat连接报错client does not support authentication 解决办法: 1. docker ps -a 查找到容器id 2.  ...

  7. 使用easyui实现双击列表中某个值直接对其进行修改

    var editCell = undefined; $('#dg').datagrid({ url:'DwzServlet', iconCls:'icon icon-list' , queryPara ...

  8. HDU 3389 阶梯博弈变形

    n堆石子,每次选取两堆a!=b,(a+b)%2=1 && a!=b && 3|a+b,不能操作者输 选石子堆为奇数的等价于选取步数为奇数的,观察发现 1 3 4 是无法 ...

  9. html5 canvas用图案填充形状

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. ASP.NET自定义服务器控件

    本文通过创建一个最简单的服务器控件,演示开发服务器端控件的流程. 文章内容整理自MSDN的编程指南,原文地址在文章末尾的资源中. 本文创建一个简单的服务器控件,名为 RedLabel. 它的使用方式为 ...