网站首页正常打开 内页404是怎么回事
一、核心原因(90% 都是这几个)
1. 伪静态规则错误 / 没生效(最常见)
情况 1:选错服务器环境(Nginx/Apache 搞反)
宝塔网站设置 → 服务器软件查看:
显示
nginx→ 必须用 Nginx 规则显示
Apache→ 必须用 Apache 规则用错规则,百分百内页 404。
情况 2:伪静态没保存 / 缓存没清
重新进入「伪静态」,粘贴对应规则,点击保存
宝塔面板重启网站(网站→对应站点→重启)
浏览器强制刷新
Ctrl+F5,清缓存
情况 3:PbootCMS 规则少参数(重点)
PbootCMS 必须带 ?s=,错误示例(你之前如果写成下面这样必 404):
# 错误
rewrite ^(.*)$ /index.php?$1 last;
# 正确 PbootCMS Nginx
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
ZBlog 规则确认:
# ZBlog 正确 Nginx
if (-f $request_filename) { break; }
if (-d $request_filename) { break; }
rewrite ^(.*)$ /index.php?$1 last;
2. 程序后台「伪静态开关」没开启(高频问题)
👉 PbootCMS
登录网站后台 → 系统配置 → 站点配置
找到 开启伪静态(URL 重写) → 设为 开启
保存,清理程序缓存,再测试内页
👉 ZBlogPHP
后台 → 网站设置 → 静态化设置
开启 URL 重写(伪静态)
选择对应静态模式,保存并重建缓存
关键点:服务器伪静态规则 + 程序后台开关 必须同时开启,只开一边必然内页 404。
3. 网站目录、权限问题
站点根目录不对宝塔网站→设置→网站目录,确认程序文件就在根目录,不是放在
public、wwwroot子文件夹里。如果程序在
public子目录:需要单独配子目录伪静态。文件权限不足根目录、
index.php权限建议设置:755(目录)、644(文件),宝塔直接右键授权即可。
4. 域名、HTTPS / 301 冲突
开启了 HTTPS,但伪静态 / 重写规则没适配 HTTPS,导致内页跳转 404
绑定了多个域名,首页能进,内页解析异常处理:
宝塔开启 SSL 并强制 HTTPS
伪静态规则保持不变,重启网站测试
5. 路由 / 栏目地址异常(程序本身问题)
后台修改过栏目别名、文章别名,保存后没更新缓存操作:后台清空全站缓存 + 重建 URL,再访问内页。
二、快速排查步骤(按顺序做,最快解决)
查看宝塔网站服务器类型(Nginx/Apache),替换成对应正确伪静态规则并保存
重启宝塔网站服务
进入程序后台,开启伪静态开关,清空程序缓存
浏览器
Ctrl+F5强制刷新内页测试仍 404:检查网站目录是否正确、文件权限
文章由福玩代码编辑 https://www.fouwan.com


