让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运行时强制显示出错信息的代码
Apr 20 PHP
php编程实现获取excel文档内容的代码实例
Jun 28 PHP
PHP程序员不应该忽略的3点
Oct 09 PHP
PHP文件下载实例代码浅析
Aug 17 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
Sep 30 PHP
浅谈PHP中的面向对象OOP中的魔术方法
Jun 12 PHP
基于swoole实现多人聊天室
Jun 14 PHP
Ubuntu彻底删除PHP7.0的方法
Jul 27 PHP
PHP序列化的四种实现方法与横向对比
Nov 29 PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
Oct 10 PHP
Laravel 自定命令以及生成文件的例子
Oct 23 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
Dec 31 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
如何提高MYSQL数据库的查询统计速度 select 索引应用
2007/04/11 PHP
php下统计用户在线时间的一种尝试
2010/08/26 PHP
PHP header()函数使用详细(301、404等错误设置)
2013/04/17 PHP
分享常见的几种页面静态化的方法
2015/01/08 PHP
php使用高斯算法实现图片的模糊处理功能示例
2016/11/11 PHP
thinkphp修改配置进入默认首页的方法
2017/02/07 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
2019/09/18 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
2020/05/26 PHP
Div Select挡住的解决办法
2008/08/07 Javascript
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
window.open以post方式将内容提交到新窗口
2012/12/26 Javascript
JavaScript调用客户端Java程序的方法
2015/07/27 Javascript
jQuery增加与删除table列的方法
2016/03/01 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
2017/06/17 Javascript
JavaScript中的高级函数
2018/01/04 Javascript
JS高级技巧(简洁版)
2018/07/29 Javascript
使用mixins实现elementUI表单全局验证的解决方法
2019/04/02 Javascript
js实现简单的点名器随机色实例代码
2020/09/20 Javascript
pandas中Timestamp类用法详解
2017/12/11 Python
Python通用循环的构造方法实例分析
2018/12/19 Python
对pandas处理json数据的方法详解
2019/02/08 Python
Python获取数据库数据并保存在excel表格中的方法
2019/06/12 Python
简单了解python的内存管理机制
2019/07/08 Python
详解用python -m http.server搭一个简易的本地局域网
2020/09/24 Python
关于box-sizing的全面理解
2016/07/28 HTML / CSS
AmazeUI底部导航栏与分享按钮的示例代码
2020/08/18 HTML / CSS
英国、欧洲和全球租车服务:Avis英国
2016/08/29 全球购物
毕业自我鉴定
2013/11/05 职场文书
项目经理岗位职责
2013/11/11 职场文书
培训班开班仪式主持词
2014/03/28 职场文书
党支部综合考察材料
2014/05/19 职场文书
艺术设计专业毕业生推荐信
2014/07/08 职场文书
捐款仪式主持词
2015/07/04 职场文书
Pytorch使用shuffle打乱数据的操作
2021/05/20 Python
详解Go与PHP的语法对比
2021/05/29 PHP
python可视化之颜色映射详解
2021/09/15 Python