Nginx下配置支持ThinkPHP的pathinfo模式

   2016-12-01 0
核心提示:说明: Nginx目录:/usr/local/nginx/ Nginx配置文件:/usr/local/nginx/nginx.conf 如果站点使用了vhost虚拟主机,并且只需要这一个虚拟主机支持pathinfo的,可以直接打开你的vhost的配置文件进行设置。 找到类似如下代码: location ~ .*\.(php|php5)?$ { #

Nginx下配置支持ThinkPHP的pathinfo模式

说明:

Nginx目录:/usr/local/nginx/

Nginx配置文件:/usr/local/nginx/nginx.conf

如果站点使用了vhost虚拟主机,并且只需要这一个虚拟主机支持pathinfo的,可以直接打开你的vhost的配置文件进行设置。

找到类似如下代码:

location ~ .*\.(php|php5)?$

{

#原来的代码

......

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fastcgi.conf;

......

}

修改为以下代码:

location ~ \.php

{

#定义变量 $path_info ,用于存放pathinfo信息

set $path_info "";

#定义变量 $real_script_name,用于存放真实地址

set $real_script_name $fastcgi_script_name;

#如果地址与引号内的正则表达式匹配

if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {

#将文件地址赋值给变量 $real_script_name

set $real_script_name $1;

#将文件地址后的参数赋值给变量 $path_info

set $path_info $2;

}

#配置fastcgi的一些参数

fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;

fastcgi_param SCRIPT_NAME $real_script_name;

fastcgi_param PATH_INFO $path_info;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fastcgi.conf;

}

这样设置后,nginx已经可以支持pathinfo了。如果要支持ThinkPHP的URL_MODE设置为2的模式,还需要配置rewrite规则。找到access_log语句,在其上方加上以下语句:

#如果请求既不是一个文件,也不是一个目录,则执行一下重写规则

if (!-e $request_filename)

{

#地址作为将参数rewrite到index.php上。

rewrite ^/(.*)$ /index.php/$1;

#若是子目录则使用下面这句,将subdir改成目录名称即可。

#rewrite ^/subdir/(.*)$ /subdir/index.php/$1;

}

最后,重启Nginx服务,service nginx restart 使配置生效。

至此,Nginx下配置支持ThinkPHP的pathinfo模式教程完成。

Nginx下配置支持ThinkPHP的pathinfo模式

 
标签: Nginx ThinkPHP
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • Nginx动态路由的新姿势:使用Go取代lua nginx路由规则
    Nginx动态路由的新姿势:使用Go取代lua nginx路
    导语: 在Nitro 中, 我们需要一款专业的负载均衡器。 经过一番研究之后,Mihai Todor和我使用Go构建了基于Nginx、Redis 协议的路由器解决方案,其中nginx负责所有繁重工作,路由器本身并不承载流量。 这个解决方案过去一年在生产环境中运行顺畅。 以下是我
    03-08
  • nginx和php-fpm 是使用 tcp socket 还是 unix s
    tcp socket允许通过网络进程之间的通信,也可以通过loopback进行本地进程之间通信。unix socket允许在本地运行的进程之间进行通信。分析从上面的图片可以看,unix socket减少了不必要的tcp开销,而tcp需要经过loopback,还要申请临时端口和tcp相关资源。但是
    03-08
  • [微信小程序直播平台开发]___(三)Nginx-rtmp事件回调
    [微信小程序直播平台开发]___(三)Nginx-rtmp
    1.一个可以忽略的前言发起直播后可以在Nginx的自带的页面上查看到统计,那怎么知道发起了直播或者关闭了直播呢?我想到了这个统计页,于是查看一下里面的内容看看如何获取到的数据,找到后发现是个xsl文件,莫非要写个读取该文件的代码?好吧这是下下策。其实
    02-09
  • 微信小程序 springboot nginx 做图片存储 上传
    微信小程序前端-springboot后端-nginx图片存储前言本人小白一名,这是第一次学习微信小程序,特此做个记录。首先准备nginx做图片存储选择一个地址存放图片#我的地址[root@VM_0_16_centos images]# pwd/home/photos/images[root@VM_0_16_centos images]#然后配
    02-09
  • 结合nginx的内嵌perl-module,实现高性能的web
    到底web服务器的极限是多少呢?100 r/s? 500 r/s?还是1000 r/s?在StaticGenerator上看到,原来1000 r/s都不算什么.真的是这样吗?如果是真的那就太恐怖了。目前的web基本上都是动态的,为了提高性能,我们常常会使用各种各样的手段优化,例如减少IO,合理
    02-09
  • apt-get 方式安装nginx后,增加模块--with-http
    因为要把网站的图片格式方式换成imageMagick的缘故,服务器端原来安装的nginx要增加perl的模块,而原来服务器安装时apt-get方式安装的并不是源码安装,但我又不想直接卸了重新安装,所以整了老半天,下面把方法和遇到的问题记录如下,供有同样需求的人参考。
    02-09
  • Lua在Nginx的应用 nginx lua
    Lua在Nginx的应用 nginx lua
    当 Nginx 标准模块和配置不能灵活地适应系统要求时,就可以考虑使用 Lua 扩展和定制 Nginx 服务。OpenResty集成了大量精良的 Lua 库、第三方模块,可以方便地搭建能够处理超高并发、扩展性极高的 Web 服务,所以这里选择 OpenResty 提供的lua-nginx-module方
    02-09
  • Nginx 内嵌lua脚本,结合Redis使用
    0x00 Nginx 内嵌Lua脚本有下面特点:20k个并发连接Lua脚本能够在Nignx 11个层次的不同层次发挥作用,扩展Ngnix功能Lua速度极快(寄存器指令)0x01 应用场景在web server端做请求过滤处理(如:WAF、Anti CC等)0x02 简单配置过程測试环境Ubuntu Server 14.04.
    02-09
  • 通过nginx + lua来统计nginx上的监控网络请求和
    介绍以前我们为nginx做统计,都是通过对日志的分析来完成.比较麻烦,现在基于ngx_lua插件,开发了实时统计站点状态的脚本,解放生产力.项目主页: https://github.com/skyeydemon/ngx-lua-stats功能支持分不同虚拟主机统计, 同一个虚拟主机下可以分不同的location
    02-09
  • 51CTO专访淘宝清无:漫谈Nginx服务器与Lua语言
    51CTO专访淘宝清无:漫谈Nginx服务器与Lua语言
    http://os.51cto.com/art/201112/307610.htm说到Web服务器,也许你第一时间会想到Apache,也许你会想到Nginx。虽然说Apache依然是Web服务器的老大,但是在全球前 1000大Web服务器当中,22.4%使用NGINX。这些服务器包括诸如Facebook、Hulu和WordPress之类的网
    02-09
点击排行