CMS站点伪静态失效,页面404故障排查

CMS站点伪静态失效导致页面404,通常意味着服务器没有正确将动态URL重写为静态形式,或者CMS的伪静态规则未生效。
本文面向零基础站长,从故障现象出发,逐步排查服务器配置、CMS设置和文件权限,最终恢复页面正常访问。

先确认故障现象和影响范围

打开网站前台,点击任意文章或栏目链接,如果浏览器返回404 Not Found,但直接访问动态地址(如 index.php?
m=article&id=1
)能正常显示,基本可以断定是伪静态规则失效。
此时先检查是全部页面404,还是只有部分页面404。
全部404通常指向服务器重写模块未开启或规则文件丢失;
部分404可能是规则不完整或CMS缓存问题。

检查服务器重写模块和伪静态规则

不同Web服务器的排查方法不同,下面分别说明。

Nginx环境

  1. 登录服务器,执行 nginx -V 查看编译参数,确认包含 --with-http_rewrite_module。如果没有,需要重新编译或安装包含该模块的版本。
  2. 找到站点配置文件,通常位于 /etc/nginx/conf.d//www/server/panel/vhost/nginx/。检查 server 块中是否有 include 引入伪静态规则文件,例如 include /www/server/panel/vhost/rewrite/yourdomain.conf;
  3. 打开该规则文件,确认内容与CMS官方提供的伪静态规则一致。以WordPress为例,规则通常为:
location / {
    try_files $uri $uri/ /index.php?$args;
}
  1. 保存后执行 nginx -t 测试配置,无误后 nginx -s reload 重载。

Apache环境

  1. 执行 apachectl -M | grep rewrite 查看 rewrite_module 是否加载。如果没有,在配置文件中取消 LoadModule rewrite_module modules/mod_rewrite.so 的注释。
  2. 确认站点目录的 AllowOverride 设置为 All,否则 .htaccess 文件不会生效。
  3. 检查网站根目录下的 .htaccess 文件是否存在且内容正确。WordPress默认规则为:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
  1. 重启Apache:systemctl restart httpdservice apache2 restart

核对CMS后台伪静态设置

服务器规则正确后,还需确认CMS本身开启了伪静态。
以常见CMS为例:

  • WordPress:进入“设置”->“固定链接”,选择“文章名”或自定义结构,保存更改。即使之前已设置,也建议重新保存一次,这会刷新重写规则。
  • 织梦DedeCMS:后台“系统”->“系统基本参数”->“核心设置”,开启“启用伪静态”,并确保“伪静态后缀”与服务器规则匹配。
  • 帝国CMS:后台“系统”->“伪静态参数设置”,根据服务器环境选择对应规则,并生成伪静态页面。

修改后清空CMS缓存,并刷新网站首页测试。

排查文件权限和路径问题

如果以上步骤都正确,但依然404,检查网站根目录路径是否与服务器配置一致。
例如Nginx中 root 指令指向的目录必须包含CMS入口文件 index.php
同时确保 .htaccess 文件(Apache)或伪静态规则文件(Nginx)有正确的读取权限。

另外,某些CMS会在静态化设置中生成纯静态HTML文件,如果误开启,可能导致动态请求被拦截。
检查是否存在 html 目录,若有,暂时重命名测试。

验证修复效果与常见疑问

完成上述调整后,访问几个之前404的页面,观察是否正常。
同时查看服务器错误日志(Nginx:/var/log/nginx/error.log
Apache:/var/log/httpd/error_log),确认没有重写循环或文件不存在的报错。

问:伪静态规则正确,为什么还是404?
答:可能是CMS缓存未更新,或服务器未重载配置。尝试重启Web服务并清除CMS缓存。

问:部分页面404,部分正常,是什么原因?
答:检查CMS的URL规则是否覆盖所有栏目类型,例如自定义文章模型可能需要单独添加规则。

问:使用宝塔面板如何操作?
答:在宝塔面板中,进入网站设置->伪静态,选择对应CMS规则保存,然后重载Nginx或Apache。

问:修改后网站出现500错误怎么办?
答:通常是规则语法错误,检查规则文件是否有拼写错误,或暂时恢复默认规则。

如果问题依旧,建议对比CMS官方文档的伪静态要求,或联系服务器运维人员协助排查。

分享到:
上一篇
CMS网站数据库定期维护,清理冗余日志
下一篇
CMS后台登录空白,权限与文件权限问题
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意