让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 表单验证实现代码
Mar 10 PHP
php ftp文件上传函数(基础版)
Jun 03 PHP
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
May 29 PHP
使用php方法curl抓取AJAX异步内容思路分析及代码分享
Aug 25 PHP
Linux系统下PHP-FPM的安装和配置教程
Aug 17 PHP
PHP中addcslashes与stripcslashes函数用法分析
Jan 07 PHP
php简单实现数组分页的方法
Apr 30 PHP
laravel中的错误与日志用法详解
Jul 26 PHP
php操作路径的经典方法(必看篇)
Oct 04 PHP
Thinkphp 中 distinct 的用法解析
Dec 14 PHP
PHP实现的函数重载功能示例
Aug 03 PHP
php web环境和命令行环境下查找php.ini的位置
Jul 17 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中将数组转成字符串并保存到数据库中的函数代码
2013/09/29 PHP
PHP中魔术变量__METHOD__与__FUNCTION__的区别
2014/09/29 PHP
php使用fputcsv()函数csv文件读写数据的方法
2015/01/06 PHP
PHP简单实现断点续传下载的方法
2015/09/25 PHP
PHP基于ORM方式操作MySQL数据库实例
2017/06/21 PHP
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
2010/06/18 Javascript
javascript中的一些注意事项 更新中
2010/12/06 Javascript
js获取input标签的输入值实现代码
2013/08/05 Javascript
js中通过split函数分割字符串成数组小例子
2013/09/21 Javascript
js图片延迟技术一般的思路与示例
2014/03/20 Javascript
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
实例代码讲解jquery easyui动态tab页
2015/11/17 Javascript
利用jQuery及AJAX技术定时更新GridView的某一列数据
2015/12/04 Javascript
JavaScript常用字符串与数组扩展函数小结
2016/04/24 Javascript
Bootstrap4一次重大更新 几乎涉及每行代码
2016/05/16 Javascript
JS产生随机数的几个用法详解
2016/06/22 Javascript
Angular排序实例详解
2017/06/28 Javascript
vue父组件向子组件(props)传递数据的方法
2018/01/02 Javascript
JavaScript检测是否开启了控制台(F12调试工具)
2020/10/02 Javascript
wepy--用vantUI 实现上弹列表并选择相应的值操作
2020/11/03 Javascript
ES2020让代码更优美的运算符 (?.) (??)
2021/01/04 Javascript
[03:40]2014DOTA2国际邀请赛 B神专访:躲箭真的很难
2014/07/13 DOTA
python中Apriori算法实现讲解
2017/12/10 Python
8段用于数据清洗Python代码(小结)
2019/10/31 Python
django实现模型字段动态choice的操作
2020/04/01 Python
微信小程序实现可实时改变转速的css3旋转动画实例代码
2018/09/11 HTML / CSS
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
2013/07/30 面试题
小学教师的自我评价范例
2013/10/31 职场文书
偷看我的初中毕业鉴定
2014/01/29 职场文书
新闻发布会主持词
2014/03/28 职场文书
百货商场楼层班组长竞聘书
2014/03/31 职场文书
党员创先争优心得体会
2014/09/11 职场文书
叶问观后感
2015/06/15 职场文书
古诗文之爱国名句(77句)
2019/09/24 职场文书
selenium.webdriver中add_argument方法常用参数表
2021/04/08 Python
SQL Server2019数据库之简单子查询的具有方法
2021/04/27 SQL Server