当前位置:

首页 > 编程开发 > ThinkPHP伪静态怎么配宝塔_ThinkPHP多语言面板设置方法【操作】

ThinkPHP伪静态怎么配宝塔_ThinkPHP多语言面板设置方法【操作】

宝塔面板配置ThinkPHP6伪静态需将网站运行目录改为/public并重载服务;Nginx重写规则使用官方rewrite规则而非宝塔模板;移除PHP禁用函数中的scandir并确保PATH_INFO正常;多语言包路径必须为lang/zh-cn格式且用PHP数组定义,Lang::setLang()需在中间件中提前执行。最后检查runtime目录权限。

ThinkPHP 6 在宝塔面板上折腾伪静态,多半是栽在这几个坑里:public 目录没指对、scandir 被 PHP 禁了,或者 Nginx 重写规则压根没把请求送进 index.php。至于多语言失效,那更简单——路径大小写、文件名、加载时机,错一个就静默罢工。先聊点具体的。

ThinkPHP伪静态怎么配宝塔_ThinkPHP多语言面板设置方法【操作】

public 目录:不改就不是 TP6 的玩法

宝塔新建站点时,默认的网站根目录指在项目顶层(比如 /www/wwwroot/myapp),但 ThinkPHP 6 明确只允许 public 子目录对外暴露。不设的话,index.php 直接暴露在根目录不说,config/ 这类敏感目录也能被浏览器直读,路由更是全线崩溃。所以,第一件事:

  • 宝塔面板 → 网站 → 对应站点 → 设置 → 网站目录 → 把「运行目录」改成 /public
  • 改完之后,别只点「保存」。得再点一下「重载 Apache/Nginx」——旧进程还在用老路径,不重载等于白改
  • 有人问 TP5 是不是也能这么改?可以,但 TP5 确实能跑在顶层。不过安全性和 URL 一致性都不如指向 public,所以也建议一步到位统一处理

Nginx 伪静态:官方规则最省心,别用宝塔模板

宝塔自带的「ThinkPHP」伪静态模板,默认适配的是 TP5。它对 TP6 的 PATH_INFO 理解不到位,结果就是首页能打开,点个菜单瞬间 404——典型症状。这时候不如直接清空模板,用 TP6 官方规则:

location / {
    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php?s=$1 last;
    }
}

有几个要点需要注意:

  • 别用 try_files 写法,比如 try_files $uri $uri/ /index.php?$query_string。这会让 TP6 拿不到 $_SERVER['PATH_INFO'],直接报 URL pathinfo not supported
  • last 是灵魂——它让重写后的请求重新匹配 location,确保最终能进入 PHP 处理。换成 break 或 redirect,要么不触发,要么就跳走了
  • 规则必须放在 location ~ \.php$ 块之前。如果调换顺序,PHP 文件的匹配优先级更高,rewrite 根本不会被触发

PHP 配置:scandir 和 PATH_INFO 不能动

TP6 启动时,需要扫描 app/、config/ 等目录来加载配置和类,这个过程依赖 scandir()。同时,路由解析依靠 PATH_INFO 相关机制。一旦这俩被禁用或配置不对,结果就是白屏或直接报错。检查步骤:

  • 宝塔 → 软件商店 → 找到你用的 PHP 版本 → 设置 → 配置修改 → 搜索 disable_functions
  • 把 scandir 从禁用列表里删掉(其他如 exec、system 保留即可,不影响安全)
  • 确认 putenv 和 ini_set 没有被禁用——TP6 运行时需要动态设置 PATH_INFO
  • 检查 PHP-FPM 配置中 fastcgi_param PATH_INFO $fastcgi_path_info; 这行是否被注释了。宝塔默认是有这行的,但升级 PHP 版本后有时会被重置,别忘了看一眼

多语言:路径、命名、时机,一个都不能差

TP6 的多语言功能,不是你把配置开关打开就能自动生效的。路径错一位、大小写差一个字母、Lang::setLang() 放错位置,翻译就会静默失效——不报错,只返回原 key,排查起来特别隐蔽。

  • 语言包必须放在根目录的 lang/ 文件夹下,子目录名用小写短横线格式,比如 lang/zh-cn/、lang/en-us/。写成 zh_CN 或 ZH-CN 都不行,TP6 不会识别
  • 每个子目录里放 common.php(也可以用其他分组名,比如 user.php),但文件内容必须是 return ['hello' => '你好']; 这种 PHP 数组格式。不能是 JSON 或 YAML,也不能把定义写在 config/lang.php 里
  • Lang::setLang() 必须在任何 lang() 函数调用之前执行。最佳位置是在中间件里(比如 app\common\middleware\Lang.php)。放在控制器构造函数里是无效的,调用时机太晚
  • 调试时,可以在 public/index.php 开头加一行 $_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI']; 强制兜底。但这只是调试手段,上线前必须删掉

最后说一个最容易被忽视的地方:权限。很多人配完所有设置,页面还是不正常,最终发现是 runtime/ 目录的属主不是 www,PHP 没有写入权限,错误信息全被吞了。错误不会直接显示在页面上,但会写在 runtime/log/thinkphp.log 或 Nginx 的错误日志里。所以,配完先去看日志,比反复刷页面有用得多。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
编程开发
相关文章 更多
ServBay安装配置详细教程与操作指南
ServBay安装配置详细教程与操作指南

新手入门 ServBay 本地开发环境,详解安装包下载、Dashboard 状态监控、Packages 组件安装、Services 服务控制及 Websites 项目配置。掌握 .servbay.config 版本管理与日志排查技巧,快速搭建稳定的 PHP、Node.js 等多语言开发环境。

codekit环境配置指南从安装到环境搭建完整教程
codekit环境配置指南从安装到环境搭建完整教程

详解 CodeKit 在 macOS 下的安装步骤、项目导入方法、Sass与JavaScript编译设置及浏览器自动刷新功能,助您快速搭建高效的前端开发环境。

codex安装windows 命令行完整操作教程
codex安装windows 命令行完整操作教程

详解Windows环境下安装OpenAI Codex CLI的步骤,包括WSL环境检查、Node.js/npm配置、npm全局安装命令及首次启动验证,适合开发者快速上手。

NativeRest环境配置要求与完整操作教程
NativeRest环境配置要求与完整操作教程

学习如何配置 NativeRest REST API 客户端。涵盖 Windows/macOS/Linux 安装后的工作区创建、环境变量管理、请求编辑及响应查看步骤,帮助开发者快速完成基础环境搭建与连通性测试。

CSS设置透明度的注意事项有哪些?opacity属性详解
CSS设置透明度的注意事项有哪些?opacity属性详解

深入解析CSS中设置透明度的核心属性opacity,剖析子元素继承、事件穿透、层叠上下文等关键注意事项,并提供与rgba、hsla的实用选型对比。

flutter页面传值到后台的方法及示例代码
flutter页面传值到后台的方法及示例代码

flutter页面传值到后台的完整实现方法及示例代码,帮助读者快速掌握相关技术要点。

Java 8至21新特性代码写法对比:Lambda、Record与Switch
Java 8至21新特性代码写法对比:Lambda、Record与Switch

本文通过具体的旧版与新版代码对比,详细剖析Java 8引入的Lambda表达式、Java 14/16引入的Record类,以及Java 12至21逐步演进完善的Switch表达式与模式匹配,展示代码简化路径与避坑要点。

AI智能体开发培训课程学什么及实战内容介绍
AI智能体开发培训课程学什么及实战内容介绍

系统梳理AI智能体开发培训的核心知识模块、技术栈选型与典型实战项目,解析低代码平台与纯代码框架的差异,提供从零构建可落地智能体的完整学习与实施路径。

Java子类未实现抽象方法编译错误修复指南
Java子类未实现抽象方法编译错误修复指南

针对Java开发中常见的“子类未实现抽象方法”编译错误,深入分析报错原因,提供重写实现、声明抽象子类两种标准修复路径,并总结参数签名、访问修饰符等典型避坑要点。

解决PHP递归报错:max_nesting_level限制与内存溢出处理
解决PHP递归报错:max_nesting_level限制与内存溢出处理

遇到PHP递归报错时,不要盲目调大max_nesting_level。本文教你区分Xdebug限制、内存耗尽和正则递归错误,提供代码级的终止条件优化与迭代替代方案,彻底解决栈溢出问题。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
Shapr3D macOS版
Shapr3D macOS版
Mac

Shapr3D是一款面向工业设计、机械工程、建筑概念和三维打印工作流的CAD软件。Mac版采用Parasolid建模内核,支持草图约束、实体建模、工程图、可视化渲染及常见CAD格式交换,并可通过账户在多台设备之间同步项目。

REAPER macOS版
REAPER macOS版
Mac

REAPER是Cockos开发的数字音频工作站,提供多轨音频与MIDI录制、剪辑、处理、混音和母带制作工具。Mac版兼容Intel与Apple芯片,支持AU、VST、VST3、CLAP等插件格式,并提供高度可定制的工作流程。

Ableton Live macOS版
Ableton Live macOS版
Mac

Ableton Live 是面向音乐制作人与现场表演者的数字音频工作站,提供编曲视图、独具特色的现场视图、音频录制、MIDI创作、实时变速、乐器及效果器。Mac版原生支持Apple芯片,并可连接音频接口、MIDI控制器和第三方插件。

WINDOWS 更多
3dmax(3ds max)
3dmax(3ds max)
Windows

Autodesk 3ds Max 是一款专业的三维建模、动画与渲染软件,广泛应用于建筑可视化、游戏开发、影视动画、广告设计和产品展示等领域。

photoshop
photoshop
Windows、macOS 、 iPad

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender
Windows、macOS 和 Linux

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。