让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 Undefined index的问题
Jun 01 PHP
PHP 遍历文件实现代码
May 04 PHP
PHP检测用户语言的方法
Jun 15 PHP
PHP使用内置函数生成图片的方法详解
May 09 PHP
Yii2创建表单(ActiveForm)方法详解
Jul 23 PHP
PHP 匿名函数与注意事项详细介绍
Nov 26 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
Sep 15 PHP
php+redis实现商城秒杀功能
Nov 19 PHP
PHP数组常用函数实例小结
Aug 20 PHP
Yii框架布局文件的动态切换操作示例
Nov 11 PHP
Laravel等框架模型关联的可用性浅析
Dec 15 PHP
TP5框架实现上传多张图片的方法分析
Mar 29 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
smtp邮件发送一例
2006/10/09 PHP
php存储过程调用实例代码
2013/02/03 PHP
迅速确定php多维数组的深度的方法
2014/01/07 PHP
PHP Echo字符串的连接格式
2016/03/07 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
2018/04/20 PHP
jQuery 使用手册(七)
2009/09/23 Javascript
深入理解javascript严格模式(Strict Mode)
2014/11/28 Javascript
JavaScript中的toLocaleLowerCase()方法使用详解
2015/06/06 Javascript
跟我学习javascript的最新标准ES6
2015/11/20 Javascript
给before和after伪元素设置js效果的方法
2015/12/04 Javascript
javascript输出AscII码扩展集中的字符方法
2016/12/26 Javascript
详解react-refetch的使用小例子
2019/02/15 Javascript
基于JS实现web端录音与播放功能
2019/04/17 Javascript
使用Phantomjs和Node完成网页的截屏快照的方法
2019/07/16 Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
2019/08/03 Javascript
浅谈Vue.js之初始化el以及数据的绑定说明
2019/11/14 Javascript
[45:59]EG vs OG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python之yield表达式学习
2014/09/02 Python
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
Python每天必学之bytes字节
2016/01/28 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
2018/01/22 Python
python 识别图片中的文字信息方法
2018/05/10 Python
python通过zabbix api获取主机
2018/09/17 Python
python 2.7.13 安装配置方法图文教程
2018/09/18 Python
Python3中bytes类型转换为str类型
2018/09/27 Python
python ChainMap 合并字典的实现步骤
2019/06/11 Python
python3.4+pycharm 环境安装及使用方法
2019/06/13 Python
Python基于staticmethod装饰器标示静态方法
2020/10/17 Python
HTML5中的Web Notification桌面右下角通知功能的实现
2018/04/19 HTML / CSS
美国Randolph太阳镜官网:美国制造的飞行员太阳镜和射击眼镜
2018/06/15 全球购物
总经理助理的八要求
2013/11/12 职场文书
信息总监管理职责范本
2014/03/08 职场文书
降消项目实施方案
2014/03/30 职场文书
企业宣传语大全
2015/07/13 职场文书
javascript canvas实现雨滴效果
2021/06/09 Javascript
一次SQL如何查重及去重的实战记录
2022/03/13 MySQL