让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 相关文章推荐
使用MaxMind 根据IP地址对访问者定位
Oct 09 PHP
PHP执行linux系统命令的常用函数使用说明
Apr 27 PHP
php 面试碰到过的问题 在此做下记录
Jun 09 PHP
wordpress自定义url参数实现路由功能的代码示例
Nov 28 PHP
PHP中模拟处理HTTP PUT请求的例子
Jul 22 PHP
php中error与exception的区别及应用
Jul 28 PHP
Laravel 5.0 发布 新版本特性详解
Feb 10 PHP
php实现的用户查询类实例
Jun 18 PHP
php注册和登录界面的实现案例(推荐)
Oct 24 PHP
PHP数组生成XML格式数据的封装类实例
Nov 10 PHP
PHP多进程之pcntl_fork的实例详解
Oct 15 PHP
PHP数组Key强制类型转换实现原理解析
Sep 01 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修改Linux或Unix口令的方法分享
2012/01/30 PHP
php中将汉字转换成拼音的函数代码
2012/09/08 PHP
php Calender(日历)代码分享
2014/01/03 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
2014/09/12 PHP
php获取本周星期一具体日期的方法
2015/04/20 PHP
php发送邮件的问题详解
2015/06/22 PHP
PHP使用ActiveMQ实现消息队列的方法详解
2019/05/31 PHP
PHP pthreads v3下同步处理synchronized用法示例
2020/02/21 PHP
jQuery.extend 函数的详细用法
2012/06/27 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
原生js编写autoComplete插件
2016/04/13 Javascript
Node.js的Koa框架上手及MySQL操作指南
2016/06/13 Javascript
前端开发之CSS原理详解
2017/03/11 Javascript
JavaScript取得gridview中获取checkbox选中的值
2017/07/24 Javascript
js实现每日签到功能
2018/11/29 Javascript
JS原型与继承操作示例
2019/05/09 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
2019/08/07 Javascript
Vue中通过Vue.extend动态创建实例的方法
2019/08/13 Javascript
[03:57]DOTA2英雄梦之声_第03期_幻影刺客
2014/06/21 DOTA
[56:24]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第二局
2016/03/04 DOTA
[56:00]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第二场
2018/04/10 DOTA
[33:09]完美世界DOTA2联赛循环赛 Forest vs DM BO2第二场 10.29
2020/10/29 DOTA
使用python实现个性化词云的方法
2017/06/16 Python
flask中过滤器的使用详解
2018/08/01 Python
python的flask框架难学吗
2020/07/31 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
2020/11/28 Python
Nobody Denim官网:购买高级女士牛仔裤
2021/03/15 全球购物
八一建军节感言
2014/02/28 职场文书
医院护士党的群众路线教育实践活动对照检查材料思想汇报
2014/10/04 职场文书
八项规定自查自纠报告及整改措施
2014/10/26 职场文书
写景作文评语集锦
2014/12/25 职场文书
南京导游词
2015/02/03 职场文书
商务代表岗位职责
2015/02/15 职场文书
幼儿园园长个人总结
2015/03/02 职场文书
入党宣誓大会后的感想
2015/08/10 职场文书
MySQL update set 和 and的区别
2021/05/08 MySQL