让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产生随机字符串函数
Dec 06 PHP
PHP简单系统数据添加以及数据删除模块源文件下载
Jun 07 PHP
PHP集成FCK的函数代码
Sep 27 PHP
Windows7下PHP开发环境安装配置图文方法
May 20 PHP
php中定义网站根目录的常用方法
Aug 08 PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
Feb 28 PHP
YII Framework框架教程之安全方案详解
Mar 14 PHP
thinkphp5 migrate数据库迁移工具
Feb 20 PHP
yii2多图上传组件的使用教程
May 10 PHP
thinkPHP5框架导出Excel文件简单操作示例
Aug 03 PHP
PHP中数组转换为SimpleXML教程
Jan 27 PHP
php实现推荐功能的简单实例
Sep 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
PHP对字符串的递增运算分析
2010/08/08 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
详解PHP文件的自动加载(autoloading)
2018/02/04 PHP
php如何计算两坐标点之间的距离
2018/12/29 PHP
JS 控制CSS样式表
2009/08/20 Javascript
jquery多浏览器捕捉回车事件代码
2010/06/22 Javascript
javascript 判断中文字符长度的函数代码
2012/08/27 Javascript
jQuery焦点图切换特效插件封装实例
2013/08/18 Javascript
js+div实现图片滚动效果代码
2014/02/10 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
2014/03/05 Javascript
jQuery中:last-child选择器用法实例
2014/12/31 Javascript
jquery实现图片左右切换的方法
2015/05/07 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
2015/08/18 Javascript
js实现的tab标签切换效果代码分享
2015/08/25 Javascript
基于jQuery倾斜打开侧边栏菜单特效代码
2015/09/15 Javascript
select下拉框插件jquery.editable-select详解
2017/01/22 Javascript
微信小程序实现的3d轮播图效果示例【基于swiper组件】
2018/12/11 Javascript
利用原生JavaScript实现造日历轮子实例代码
2019/05/08 Javascript
深入理解JS异步编程-Promise
2019/06/03 Javascript
微信小程序 确认框的实现(附代码)
2019/07/23 Javascript
Vue为什么要谨慎使用$attrs与$listeners
2020/08/27 Javascript
js实现简单的轮播图效果
2020/12/13 Javascript
Python实现的简单发送邮件脚本分享
2014/11/07 Python
TensorFlow变量管理详解
2018/03/10 Python
基于DataFrame改变列类型的方法
2018/07/25 Python
Python3.6简单的操作Mysql数据库的三个实例
2018/10/17 Python
python 重命名轴索引的方法
2018/11/10 Python
python函数修饰符@的使用方法解析
2019/09/02 Python
妙用itchat! python实现久坐提醒功能
2019/11/25 Python
如何利用python正则表达式匹配版本信息
2020/12/09 Python
Python之京东商品秒杀的实现示例
2021/01/06 Python
班级口号大全
2014/06/09 职场文书
银行求职信模板
2015/03/20 职场文书
校运会广播稿
2015/08/19 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书
python中的被动信息搜集
2021/04/29 Python