宝塔面板配置ThinkPHP伪静态需同步完成三步:运行目录设为/public、粘贴专用Nginx规则(含rewrite和last)、放开scandir/putenv/ini_set等PHP函数,缺一即导致404或白屏。

宝塔面板给 ThinkPHP 配伪静态,关键不在“选模板”,而在三件事同步到位:运行目录设对、规则写准、PHP 层放行必要函数。TP6/8 尤其容易 404,90% 是漏了其中一环。
第一步:把运行目录设为 /public
TP6 强制入口在 public/index.php,但宝塔新建站点默认指向项目根目录(如 /www/wwwroot/myapp),导致 Nginx 找不到真实入口。
- 进宝塔 → 网站 → 找到你的站点 → 设置 → 网站目录 → 运行目录,选择 /public(注意开头有斜杠)
- 点「保存」后,必须再点「重载 Nginx」——只保存不重载,旧进程还在跑老路径
- 验证:访问
/index.php应该 404;访问/public/index.php或直接输域名能打开首页
第二步:手动粘贴 TP6 专用伪静态规则
别用宝塔下拉菜单里的「ThinkPHP」模板,它适配 TP5,对 TP6 的 /public/ 入口和 PATH_INFO 模式不兼容,首页能开、点菜单就 404 是典型表现。
- 进宝塔 → 网站 → 设置 → 伪静态 → 清空内容
- 粘贴以下完整规则(不是单行,注意空格和括号):
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
}
}
-
last 不可换成 break 或 redirect:只有
last会让重写后重新匹配 location,确保请求真正落到 PHP 处理块 - 规则必须放在
location ~ \.php$块之前,否则 PHP 匹配优先级更高,if 根本不执行
第三步:检查并放开 PHP 关键函数
TP6 启动时要扫描目录、动态设置 PATH_INFO,禁用某些函数会导致白屏或报 “URL pathinfo not supported”。
- 进宝塔 → 软件商店 → 找到你用的 PHP 版本 → 设置 → 配置修改 → 搜索
disable_functions - 删掉其中的 scandir、putenv、ini_set(保留 exec/system 等仍安全)
- 检查 PHP-FPM 配置里
fastcgi_param PATH_INFO $fastcgi_path_info;是否被注释(宝塔默认有,但升级 PHP 后可能重置)
最后一步:强制重载 Nginx,别只信面板按钮
宝塔界面上点「重载」有时失败或部分生效,尤其当配置有隐性语法问题时,界面不报错但实际没加载新规则。
- SSH 登录服务器,执行:
nginx -t—— 确认语法无误 - 再执行:
service nginx reload—— 强制重载,绕过宝塔 UI 缓存
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











