让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 翻页 实例代码
Aug 07 PHP
php下正则来匹配dede模板标签的代码
Aug 21 PHP
第四章 php数学运算
Dec 30 PHP
php导出word文档与excel电子表格的简单示例代码
Mar 08 PHP
php冒泡排序与快速排序实例详解
Dec 07 PHP
Yii实现显示静态页的方法
Apr 25 PHP
php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码
Nov 09 PHP
[原创]php正则删除img标签的方法示例
May 27 PHP
swoole和websocket简单聊天室开发
Nov 18 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 PHP
laravel实现简单用户权限的示例代码
May 28 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
Oct 03 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操作xml代码
2010/06/17 PHP
codeigniter使用技巧批量插入数据实例方法分享
2013/12/31 PHP
PHP常用技术文之文件操作和目录操作总结
2014/09/27 PHP
php之curl设置超时实例
2014/11/03 PHP
php 截取utf-8格式的字符串实例代码
2016/10/30 PHP
php微信开发之谷歌测距
2018/06/14 PHP
用javascript实现的激活输入框后隐藏初始内容
2007/06/29 Javascript
style、 currentStyle、 runtimeStyle区别分析
2010/08/01 Javascript
编写可维护面向对象的JavaScript代码[翻译]
2011/02/12 Javascript
单击按钮显示隐藏子菜单经典案例
2013/01/04 Javascript
Jquery显示和隐藏元素或设为只读(含Ligerui的控件禁用,实例说明介绍)
2013/07/09 Javascript
javaScript如何处理从java后台返回的list
2014/04/24 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
使用 stylelint检查CSS_StyleLint
2016/04/28 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
2020/12/01 Javascript
在react中使用vuex的示例代码
2018/07/30 Javascript
送你43道JS面试题(收藏)
2019/06/17 Javascript
利用JS响应式修改vue实现页面的input值
2019/09/02 Javascript
javascript随机变色实例代码
2019/10/15 Javascript
[31:00]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS iG
2014/05/25 DOTA
30秒轻松实现TensorFlow物体检测
2018/03/14 Python
python2与python3中关于对NaN类型数据的判断和转换方法
2018/10/30 Python
python实现宿舍管理系统
2019/11/22 Python
python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案
2020/08/11 Python
西班牙床垫网上商店:Colchones.es
2018/05/06 全球购物
Lookfantastic俄罗斯:欧洲在线化妆品零售商
2019/08/06 全球购物
欧姆龙医疗保健与医疗产品:Omron Healthcare
2020/02/10 全球购物
什么是WEB控件?使用WEB控件有哪些优势?
2012/01/21 面试题
信息技术专业个人自我评价
2013/12/11 职场文书
打造完美自荐信
2014/01/24 职场文书
班级年度安全计划书
2014/05/01 职场文书
让生命充满爱演讲稿
2014/05/10 职场文书
新员工试用期工作总结2015
2015/05/28 职场文书
关于实现中国梦的心得体会
2016/01/05 职场文书
python numpy中multiply与*及matul 的区别说明
2021/05/26 Python
GoFrame框架数据校验之校验结果Error接口对象
2022/06/21 Golang