Nginx下实现pathinfo及ThinkPHP的URL模式

发布时间 - 2026-01-11 01:05:18    点击率:

打开Nginx配置文件(不同版本的Nginx可能稍有不同),配置:

#去掉$是为了不匹配行末,即可以匹配.php/,以实现pathinfo
#如果不需要用到php后缀,也可以将其去掉
location ~ .php {
  #原有代码
  
  #定义变量 $path_info ,用于存放pathinfo信息
  set $path_info "";
  #定义变量 $real_script_name,用于存放真实地址
  set $real_script_name $fastcgi_script_name;
  #如果地址与引号内的正则表达式匹配
  if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
      #将文件地址赋值给变量 $real_script_name
      set $real_script_name $1;
      #将文件地址后的参数赋值给变量 $path_info
      set $path_info $2;
  }
  #配置fastcgi的一些参数
  fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
  fastcgi_param SCRIPT_NAME $real_script_name;
  fastcgi_param PATH_INFO $path_info;
}

这样,Nginx服务器就可以支持pathinfo了。但是如果要支持ThinkPHP的URL_MODE设置为2的模式,还需要配置rewrite规则。找到access_log语句,在其上方加上以下语句:

#如果请求既不是一个文件,也不是一个目录,则执行一下重写规则
if (!-e $request_filename) {
  #地址作为将参数rewrite到index.php上。
  rewrite ^/(.*)$ /index.php/$1;
  #若是子目录则使用下面这句,将subdir改成目录名称即可。
  #rewrite ^/subdir/(.*)$ /subdir/index.php/$1;
}

保存配置文件,重启Nginx服务,把ThinkPHP的URL_MODEL设置为2,如果能正常访问,说明配置成功。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# thinkphp开启pathinfo  # nginx  # pathinfo  # nginx开启pathinfo  # PHP使用Nginx实现反向代理  # Win10 下安装配置IIS + MySQL + nginx + php7.1.7  # 详解Nginx 和 PHP 的两种部署方式的对比  # PHP 网站修改默认访问文件的nginx配置  # nginx配置支持php的pathinfo模式配置方法  # 详解如何在CentOS7中使用Nginx和PHP7-FPM安装Nextcloud  # Centos6.4 编译安装 nginx php的方法  # windows下RunHiddenConsole 启动 nginx与php(RunHiddenCon  # 是一个  # 设置为  # 配置文件  # 也不  # 不需要  # 将其  # 还需要  # 重写  # 重启  # 稍有  # 这句  # 既不  # 大家多多  # 就可以  # 是为了  # 不匹配  # 正则表达式  # location 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: EditPlus中的正则表达式 实战(4)  如何快速打造个性化非模板自助建站?  深圳网站制作培训,深圳哪些招聘网站比较好?  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  Android实现代码画虚线边框背景效果  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  Laravel如何处理文件下载请求?(Response示例)  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  Android滚轮选择时间控件使用详解  如何快速完成中国万网建站详细流程?  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  如何在 Pandas 中基于一列条件计算另一列的分组均值  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  公司门户网站制作流程,华为官网怎么做?  Python高阶函数应用_函数作为参数说明【指导】  如何用花生壳三步快速搭建专属网站?  原生JS获取元素集合的子元素宽度实例  html5的keygen标签为什么废弃_替代方案说明【解答】  如何正确下载安装西数主机建站助手?  Laravel如何生成URL和重定向?(路由助手函数)  linux写shell需要注意的问题(必看)  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  如何挑选优质建站一级代理提升网站排名?  JavaScript如何实现类型判断_typeof和instanceof有什么区别  MySQL查询结果复制到新表的方法(更新、插入)  JS经典正则表达式笔试题汇总  Laravel如何实现API资源集合?(Resource Collection教程)  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  微信小程序 wx.uploadFile无法上传解决办法  Laravel Fortify是什么,和Jetstream有什么关系  Laravel如何生成API文档?(Swagger/OpenAPI教程)  如何在橙子建站中快速调整背景颜色?  如何注册花生壳免费域名并搭建个人网站?  高防服务器租用如何选择配置与防御等级?  如何用好域名打造高点击率的自主建站?  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  Linux安全能力提升路径_长期防护思维说明【指导】  Laravel如何自定义分页视图?(Pagination示例)  如何用腾讯建站主机快速创建免费网站?  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  简单实现jsp分页  Laravel如何创建自定义Facades?(详细步骤)  大连 网站制作,大连天途有线官网?  如何在香港服务器上快速搭建免备案网站?