在宝塔面板中部署ThinkPHP 6项目时,如果访问非首页的路由出现404错误,基本都是伪静态规则配置不当导致的。ThinkPHP 6默认采用单一入口文件设计,所有请求都需要经过public目录下的index.php文件处理,服务器需要将不存在的静态文件请求转发到该入口文件,才能正确解析路由。

一、确认项目运行环境
首先打开宝塔面板,进入对应站点的设置页面,在站点信息栏目中查看当前站点使用的服务器类型,常见的有Nginx和Apache两种,不同服务器对应的伪静态规则完全不同,配置前需要先确认服务器类型。
二、Nginx服务器伪静态配置
如果站点使用的是Nginx服务器,按照以下步骤配置:
- 进入宝塔面板,点击左侧网站菜单,找到对应的ThinkPHP 6项目站点,点击右侧的设置按钮
- 在弹出的设置窗口中,选择伪静态选项卡
- 在下方的规则输入框中粘贴以下Nginx伪静态规则
- 点击保存按钮,等待配置生效即可
对应的伪静态规则代码如下:
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
这段规则的作用是判断请求的文件或目录是否存在,如果不存在就将请求转发到index.php文件,同时保留原有的路由参数,让ThinkPHP 6的路由能够正常解析。
三、Apache服务器伪静态配置
如果站点使用的是Apache服务器,配置步骤如下:
- 同样进入对应站点的设置页面,选择伪静态选项卡
- 粘贴以下Apache伪静态规则到输入框中
- 保存配置即可生效
对应的伪静态规则代码如下:
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
需要注意的是,Apache服务器需要确保已经开启了mod_rewrite模块,宝塔面板默认安装的Apache一般已经开启该模块,如果没有开启可以在软件商店中找到Apache,点击设置后在安装扩展中开启mod_rewrite。
四、配置后仍然404的排查方法
如果配置完伪静态后仍然出现404错误,可以从以下几个方向排查:
- 检查站点根目录是否设置正确,ThinkPHP 6的站点根目录需要设置为项目下的
public目录,而不是项目根目录,错误的根目录设置会导致入口文件无法被正确访问 - 检查public目录下是否存在
.htaccess文件(Apache环境),如果该文件被删除可以重新创建,内容就是上面的Apache伪静态规则 - 检查ThinkPHP 6的路由配置是否正确,在命令行进入项目根目录,执行
php think route:list命令查看已注册的路由,确认访问的路由是否在列表中 - 检查服务器是否开启了URL重写功能,Nginx需要确认配置中没有禁用rewrite模块,Apache需要确认mod_rewrite模块已开启
五、验证配置是否生效
配置完成后,可以尝试访问项目中的一个非首页路由,比如项目中定义了一个test路由,访问http://你的域名/test,如果能够正常返回对应内容,说明伪静态配置成功,404问题已经解决。如果还是提示404,按照上面的排查步骤逐一检查即可。
ThinkPHP_6宝塔面板伪静态配置404错误修改时间:2026-06-18 05:45:27