让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获取金书网的书名的实现代码
Jun 11 PHP
PHP排序算法的复习和总结
Feb 15 PHP
超小PHP小马小结(方便查找后门的朋友)
May 05 PHP
php类中private属性继承问题分析
Nov 01 PHP
php实现文件下载更能介绍
Nov 23 PHP
CodeIgniter框架中_remap()使用方法2例
Mar 10 PHP
PHP通过内置函数memory_get_usage()获取内存使用情况
Nov 20 PHP
php实现SAE上使用storage上传与下载文件的方法
Jun 29 PHP
利用php生成验证码
Feb 23 PHP
yii2.0整合阿里云oss的示例代码
Sep 19 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
Jul 26 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
Apr 04 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 mcrypt可逆加密算法分析
2011/07/19 PHP
smarty内置函数foreach用法实例
2015/01/22 PHP
php遍历解析xml字符串的方法
2016/05/05 PHP
PHP中16个高危函数整理
2019/09/19 PHP
js模拟select下拉菜单控件的代码
2013/05/08 Javascript
js实现弹窗插件功能实例代码分享
2013/12/12 Javascript
jquery图片滚动放大代码分享(1)
2015/08/25 Javascript
Bootstrap树形控件使用方法详解
2016/01/27 Javascript
Bootstrap按钮组件详解
2016/04/26 Javascript
JavaScript实现阿拉伯数字和中文数字互相转换
2016/06/12 Javascript
BootStrap实现手机端轮播图左右滑动事件
2016/10/13 Javascript
angularJs关于指令的一些冷门属性详解
2016/10/24 Javascript
vue.js中父组件调用子组件的内部方法示例
2017/10/22 Javascript
微信小程序使用二次贝塞尔曲线画波浪
2018/12/25 Javascript
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
2019/05/10 Javascript
微信小程序系列之自定义顶部导航功能
2019/05/21 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
layui table 复选框跳页后再回来保持原来选中的状态示例
2019/10/26 Javascript
vue实现图片按比例缩放问题操作
2020/08/11 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
[15:15]教你分分钟做大人:狙击手
2014/10/30 DOTA
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
python字符串对其居中显示的方法
2015/07/11 Python
Python入门学习之字符串与比较运算符
2015/10/12 Python
python批量导入数据进Elasticsearch的实例
2018/05/30 Python
使用TensorFlow实现SVM
2018/09/06 Python
python学生管理系统开发
2019/01/30 Python
python实现共轭梯度法
2019/07/03 Python
使用Python的Turtle库绘制森林的实例
2019/12/18 Python
Python+redis通过限流保护高并发系统
2020/04/15 Python
shell程序如何生命变量?shell变量是弱变量吗?
2014/11/10 面试题
销售工作人员的自我评价分享
2013/11/10 职场文书
物业管理员岗位职责范文
2013/11/25 职场文书
荷叶母亲教学反思
2014/04/30 职场文书
微电影大赛策划方案
2014/06/05 职场文书
MySQL空间数据存储及函数
2021/09/25 MySQL