让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 相关文章推荐
如何使用脚本模仿登陆过程
Nov 22 PHP
Windows下安装Memcached的步骤说明
Apr 25 PHP
Linux fgetcsv取得的数组元素为空字符串的解决方法
Nov 25 PHP
php array的学习笔记
May 10 PHP
ThinkPHP3.1新特性之G方法的使用
Jun 19 PHP
推荐几个开源的微信开发项目
Dec 28 PHP
Laravel 5框架学习之Eloquent 关系
Apr 09 PHP
详解PHP数组赋值方法
Nov 07 PHP
PHP实现统计所有字符在字符串中出现次数的方法
Oct 17 PHP
laravel按天、按小时,查询数据的实例
Oct 09 PHP
JS中彻底删除JSON对象组成的数组中的元素
Sep 22 PHP
PHP解密支付宝小程序的加密数据、手机号的示例代码
Feb 26 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操作类
2016/06/29 PHP
php cookie 详解使用实例
2016/11/03 PHP
ThinkPHP下表单令牌错误与解决方法分析
2017/05/20 PHP
PHP实现生成数据字典功能示例
2018/05/24 PHP
PHP数组实际占用内存大小原理解析
2020/12/11 PHP
ppk谈JavaScript style属性
2008/10/10 Javascript
背景图跟随鼠标移动的Mootools插件实现代码
2011/12/12 Javascript
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
2012/10/11 Javascript
基于jquery编写的横向自适应幻灯片切换特效的实例代码
2013/08/06 Javascript
jquery退出each循环的写法
2014/02/26 Javascript
jqeury-easyui-layout问题解决方法
2014/03/24 Javascript
jQuery中常用的遍历函数用法实例总结
2015/09/01 Javascript
初识angular框架后的所思所想
2016/02/19 Javascript
超详细的JS弹出窗口代码大全
2020/04/18 Javascript
JS回调函数基本定义与用法实例分析
2017/05/24 Javascript
Python 将pdf转成图片的方法
2018/04/23 Python
pycharm远程linux开发和调试代码的方法
2018/07/17 Python
python requests爬取高德地图数据的实例
2018/11/10 Python
Python Datetime模块和Calendar模块用法实例分析
2019/04/15 Python
python学习--使用QQ邮箱发送邮件代码实例
2019/04/16 Python
Python猜数字算法题详解
2020/03/01 Python
python相对企业语言优势在哪
2020/06/12 Python
什么是python的必选参数
2020/06/21 Python
TensorFlow保存TensorBoard图像操作
2020/06/23 Python
Python图像处理二值化方法实例汇总
2020/07/24 Python
Python3实现英文字母转换哥特式字体实例代码
2020/09/01 Python
意大利奢华内衣制造商:Cosabella
2017/08/29 全球购物
PHP如何调用MYSQL存储过程
2014/05/30 面试题
优秀求职信范文分享
2014/01/26 职场文书
工程索赔意向书
2014/08/30 职场文书
授权收款委托书范本
2014/10/10 职场文书
2015欢度元旦标语口号
2014/12/09 职场文书
关于远足的感想
2015/08/10 职场文书
商业计划书如何写?关键问题有哪些?
2019/07/11 职场文书
python脚本框架webpy模板控制结构
2021/11/20 Python
2022新作动画《福星小子》释出宣传影片 加入内田真礼&宫野真守配音演出
2022/04/08 日漫