让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+MYSQL的文章管理系统(一)
Oct 09 PHP
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
Aug 02 PHP
PHP字符串word末字符实现大小写互换的方法
Nov 10 PHP
php与Mysql的一些简单的操作
Feb 26 PHP
php实现的单一入口应用程序实例分析
Sep 23 PHP
YiiFramework入门知识点总结(图文教程)
Dec 28 PHP
如何判断php mysqli扩展类是否开启
Dec 24 PHP
PHP编程实现csv文件导入mysql数据库的方法
Apr 29 PHP
2017年最好用的9个php开发工具推荐(超好用)
Oct 23 PHP
PHP获取当前系统时间的方法小结
Oct 03 PHP
php 使用mpdf实现指定字段配置字体样式的方法
Jul 29 PHP
php输出形式实例整理
May 05 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
Yii 快速,安全,专业的PHP框架
2014/09/03 PHP
php注册审核重点解析(数据访问)
2017/05/23 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
php二维数组按某个键值排序的实例讲解
2019/02/15 PHP
(仅IE下有效)关于checkbox 三态
2007/05/12 Javascript
JavaScript使用技巧精萃[代码非常实用]
2008/11/21 Javascript
Javascript 中的类和闭包
2010/01/08 Javascript
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
JavaScript 浏览器验证代码(来自discuz)
2010/07/17 Javascript
jQuery语法高亮插件支持各种程序源代码语法着色加亮
2013/04/27 Javascript
javaScript 页面自动加载事件详解
2014/02/10 Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
2014/07/01 Javascript
jQuery 浮动导航菜单适合购物商品类型的网站
2014/09/09 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
js实现同一页面多个运动效果的方法
2015/04/10 Javascript
JavaScript中使用Math.PI圆周率属性的方法
2015/06/14 Javascript
关于js里的this关键字的理解
2015/08/17 Javascript
canvas绘制万花筒效果(代码分享)
2017/01/20 Javascript
关于axios不能使用Vue.use()浅析
2018/01/12 Javascript
webpack file-loader和url-loader的区别
2019/01/15 Javascript
vue如何限制只能输入正负数及小数
2019/07/04 Javascript
微信公众号开发之微信支付代码记录的实现
2019/10/16 Javascript
Python用for循环实现九九乘法表
2018/05/31 Python
Python3 合并二叉树的实现
2019/09/30 Python
python多线程案例之多任务copy文件完整实例
2019/10/29 Python
wxPython窗体拆分布局基础组件
2019/11/19 Python
Python如何把十进制数转换成ip地址
2020/05/25 Python
使用keras实现孪生网络中的权值共享教程
2020/06/11 Python
pandas DataFrame运算的实现
2020/06/14 Python
HTML5中meta属性的使用方法
2016/02/29 HTML / CSS
Html5移动端适配IphoneX等机型的方法
2019/06/25 HTML / CSS
班主任工作经验交流材料
2014/05/13 职场文书
带刀到教室的检讨书
2014/10/04 职场文书
南湾猴岛导游词
2015/02/09 职场文书
2015年挂职干部工作总结
2015/05/14 职场文书
《妈妈别哭,有我在》读后感3篇
2020/01/13 职场文书