让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应用程序实现摘要式身份验证的方法详解
Jun 08 PHP
php实现过滤表单提交中html标签的方法
Oct 17 PHP
PHP中的命名空间相关概念浅析
Jan 22 PHP
PHP滚动日志的代码实现
Jun 10 PHP
php自定义类fsocket模拟post或get请求的方法
Jul 31 PHP
WordPress用户登录框密码的隐藏与部分显示技巧
Dec 31 PHP
WordPress后台中实现图片上传功能的实例讲解
Jan 11 PHP
Zend Framework教程之Zend_Config_Xml用法分析
Mar 23 PHP
PHP 数组基本操作方法详解
Jun 17 PHP
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
Apr 07 PHP
php简单计算权重的方法示例【适合抽奖类应用】
Jun 10 PHP
实例讲解PHP表单
Jun 10 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
destoon实现调用图文新闻的方法
2014/08/21 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
2015/03/04 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
2019/10/16 PHP
用json方式实现在 js 中建立一个map
2014/05/02 Javascript
JavaScript定义变量和变量优先级问题探讨
2014/10/11 Javascript
JS解析XML文件和XML字符串详解
2015/04/17 Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
2016/10/08 Javascript
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
2016/12/15 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
2017/03/01 Javascript
使用vue.js写一个tab选项卡效果
2017/03/25 Javascript
解决layer弹层遮罩挡住窗体的问题
2018/08/17 Javascript
node.js之基础加密算法模块crypto详解
2018/09/11 Javascript
angular6 填坑之sdk的方法
2018/12/27 Javascript
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
2019/01/29 Javascript
echarts多条折线图动态分层的实现方法
2019/05/24 Javascript
vue实现搜索过滤效果
2019/05/28 Javascript
layui use 定义js外部引用函数的方法
2019/09/26 Javascript
vue.js实现只能输入数字的输入框
2019/10/19 Javascript
JavaScript设计模式之策略模式实现原理详解
2020/05/29 Javascript
[51:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
2020/02/28 Python
Python利用命名空间解析XML文档
2020/08/10 Python
h5实现获取用户地理定位的实例代码
2017/07/17 HTML / CSS
h5使用canvas画布实现手势解锁
2019/01/04 HTML / CSS
HTML5在手机端实现视频全屏展示方法
2020/11/23 HTML / CSS
欧缇丽英国官方网站:Caudalie英国
2016/08/17 全球购物
世界上最全面的汽车零部件和配件集合:JC Whitney
2016/09/04 全球购物
英国健身专家:WIT Fitness
2021/02/09 全球购物
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
2015/03/25 面试题
医学院学生的自我评价分享
2013/11/19 职场文书
生产部经理岗位职责
2013/12/16 职场文书
给分销商的致歉信
2014/01/14 职场文书
房地产财务管理制度
2014/02/02 职场文书
学生手册评语
2014/05/05 职场文书
2014年电话销售工作总结
2014/12/01 职场文书
纯html+css实现奥运五环的示例代码
2021/08/02 HTML / CSS