让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享


Posted in PHP onAugust 08, 2011

网上搜了很多方法都不奏效,研究了一天,发现通过以下的配置可以完美支持 'URL_MODEL' => 2 的情况了

location /project/ { 
index index.php; 
if (!-e $request_filename) { 
rewrite ^/project/(.*)$ /project/index.php/$1 last; 
break; 
} 
} location ~ .+\.php($|/) { 
set $script $uri; 
set $path_info "/"; 
if ($uri ~ "^(.+\.php)(/.+)") { 
set $script $1; 
set $path_info $2; 
} 
fastcgi_pass 127.0.0.1:9000; 
fastcgi_index index.php?IF_REWRITE=1; 
include /APMServ/nginx/conf/fastcgi_params; 
fastcgi_param PATH_INFO $path_info; 
fastcgi_param SCRIPT_FILENAME $document_root/$script; 
fastcgi_param SCRIPT_NAME $script; 
}

这里先把project下的请求都转发到index.php来处理,亦即ThinkPHP的单一入口文件;然后把对php文件的请求交给fastcgi来处理,并且添加对PATH_INFO的支持。
重启Nginx以后,http://localhost/project/Index/insert, http://localhost/project/index.php/Index/delete 这样的URL都可以正确访问了。
还有一个地方需要注意的是,Nginx配置文件里 if 和后面的括号之间要有一个空格,不然会报unknown directive错误。
PHP 相关文章推荐
php横向重复区域显示二法
Sep 25 PHP
php 设计模式之 单例模式
Dec 19 PHP
Apache 配置详解(最好的APACHE配置教程)
Jul 04 PHP
php自定义函数之递归删除文件及目录
Aug 08 PHP
PHP访问MYSQL数据库封装类(附函数说明)
Dec 04 PHP
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
Jul 01 PHP
ThinkPHP Mobile使用方法简明教程
Jun 18 PHP
PHP闭包实例解析
Sep 08 PHP
PHP产生不重复随机数的5个方法总结
Nov 12 PHP
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
Nov 19 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
Oct 08 PHP
PHP面向对象学习之parent::关键字
Jan 18 PHP
php Smarty初体验二 获取配置信息
Aug 08 #PHP
php中Smarty模板初体验
Aug 08 #PHP
PHP 防注入函数(格式化数据)
Aug 08 #PHP
PHP中将数组转成XML格式的实现代码
Aug 08 #PHP
PHP程序开发范例学习之表单 获取文本框的值
Aug 08 #PHP
php记录日志的实现代码
Aug 08 #PHP
判断Keep-Alive模式的HTTP请求的结束的实现代码
Aug 06 #PHP
You might like
php调用mysql数据 dbclass类
2011/05/07 PHP
PHP Session 变量的使用方法详解与实例代码
2013/09/11 PHP
FireFox浏览器使用Javascript上传大文件
2013/10/30 PHP
JavaScript实现滚动栏效果的方法
2015/04/27 PHP
php通过header发送自定义数据方法
2018/01/18 PHP
js保存当前路径(cookies记录)
2010/12/14 Javascript
20款非常优秀的 jQuery 工具提示插件 推荐
2012/07/15 Javascript
浅析Js(Jquery)中,字符串与JSON格式互相转换的示例(直接运行实例)
2013/07/09 Javascript
浏览器页面区域大小的js获取方法
2013/09/21 Javascript
jquery中常用的SET和GET$(”#msg”).html循环介绍
2013/10/09 Javascript
利用jquery制作滚动到指定位置触发动画
2016/03/26 Javascript
关于JavaScript 原型链的一点个人理解
2016/07/31 Javascript
nodejs获取微信小程序带参数二维码实现代码
2017/04/12 NodeJs
JavaScript简单计算人的年龄示例
2017/04/15 Javascript
JavaScript实现body内任意节点的自定义属性功能示例
2017/09/18 Javascript
详解NODEJS的http实现
2018/01/04 NodeJs
javascript和php使用ajax通信传递JSON的实例
2018/08/21 Javascript
vue+webpack 更换主题N种方案优劣分析
2019/10/28 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
2020/05/16 Javascript
js 动态校验开始结束时间的实现代码
2020/05/25 Javascript
浅谈Python中copy()方法的使用
2015/05/21 Python
Python实现将json文件中向量写入Excel的方法
2018/03/26 Python
Python实现iOS自动化打包详解步骤
2018/10/03 Python
利用python在excel里面直接使用sql函数的方法
2019/02/08 Python
django框架两个使用模板实例
2019/12/11 Python
解决Keras自带数据集与预训练model下载太慢问题
2020/06/12 Python
Python爬虫+Tkinter制作一个翻译软件的示例
2021/02/20 Python
纯CSS3实现给头像加个光芒四射且旋转的背景动画效果
2014/05/07 HTML / CSS
德国Discount-Apotheke中文官网:DC德式康线上药房
2020/02/18 全球购物
行政主管职责范本
2014/03/07 职场文书
机关党员2014全国两会学习心得体会
2014/03/10 职场文书
2015年纪委工作总结
2015/05/13 职场文书
教研活动主持词
2015/07/03 职场文书
图书借阅制度范本
2015/08/06 职场文书
幼儿园小班教学反思
2016/03/03 职场文书
MySQL中几种插入和批量语句实例详解
2021/09/14 MySQL