在nginx中配置pathinfo模式支持thinkphp的URL重写

时间:2024-05-03 15:50:48 

最近一个项目中使用了ThinkPHP做为开发框架,URL上我们使用了PATHINFO模式,但是Nginx默认是不支持PATHINFO的,需要进行手动配置才可以,于是我们按照了以下方法进行了Nginx的PATHINFO支持配置:
修改nginx.conf,找到server中的 location ~ .php${},修改为location ~ .php {},并在其中增加以下内容:


set $path_info "";
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?.php)(/.+)$") {
    set $real_script_name $1;
    set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;


不过无论我们如何测试,都发现PATHINFO模式总是不能正确运行,就算运行后,{:U}方法也总是出错,打印$_SERVER后发现PHP_SELF总是不对。
但是依然PATHINFO不能正确正常工作,于是我们确定是ThinkPHP的配置问题,发现其实是ThinkPHP的_PHP_FILE的问题,在入口文件index.php中加入配置define('_PHP_FILE_',$_SERVER['SCRIPT_NAME']);,问题解决。
如果$_SERVER['SCRIPT_NAME'] 路径也不对,请先替换为正确的文件路径。

标签:nginx,pathinfo,thinkphp
0
投稿

猜你喜欢

  • 从MySQL4.0向MySQL5迁移数据

    2007-11-19 13:11:00
  • python正则表达式匹配不包含某几个字符的字符串方法

    2023-06-11 16:52:45
  • python使用pil进行图像处理(等比例压缩、裁剪)实例代码

    2022-12-22 16:50:09
  • MS SQL Server中的CONVERT日期格式化大全

    2010-08-07 11:31:00
  • 分享Win10 1903过TP的双机调试问题

    2023-03-09 19:02:37
  • python 自动监控最新邮件并读取的操作

    2023-02-04 12:58:51
  • 关于django 数据库迁移(migrate)应该知道的一些事

    2024-01-24 08:42:50
  • 微信小程序页面缩放式侧滑效果的实现代码

    2023-09-02 05:21:45
  • python定时任务sched库用法简单实例

    2023-11-07 07:26:14
  • 使用SQL Server 2008中对象相关性

    2008-12-12 06:36:00
  • javascript中的变量是传值还是传址的?

    2024-04-10 10:52:28
  • JavaScript变量声明var,let.const及区别浅析

    2024-05-09 15:05:37
  • 对Python的交互模式和直接运行.py文件的区别详解

    2023-12-18 00:03:55
  • PHP 计算两个特别大的整数实例代码

    2024-05-11 10:07:33
  • Python使用pyshp库读取shapefile信息的方法

    2023-07-27 04:56:36
  • asp访google分页代码

    2009-07-10 13:06:00
  • 从两个方面讲解SQL Server口令的脆弱性

    2009-01-08 13:40:00
  • 通过源码分析Python中的切片赋值

    2021-06-26 16:31:04
  • 惰性函数定义模式

    2007-09-26 20:56:00
  • Python线程之定位与销毁的实现

    2023-09-25 11:47:19
  • asp之家 网络编程 m.aspxhome.com