站点维护
Nginx 伪静态与 404 排查
先验证 MacCMS 动态入口,再配置 Nginx 重写,区分程序路由、PHP 转发和模板不存在造成的404。
MacCMS V10 · 更新于 · MacCMS Club 编辑部 · 版本与验证范围
只有首页正常而详情404时,先检查动态入口,别先修改数据库。
先试动态地址
使用本站真实内容 ID,访问 /index.php?s=/vod/detail/id/1。若这也失败,先查程序、内容与 PHP 转发;只有动态地址成功而美化 URL 失败,才重点查重写。
Nginx 示例规则
把规则放在此站 server 的对应 location 配置中,不能直接追加一个重复的 location /。修改前保存原文件,后台入口改名后也要同步规则。
location / {
if (!-e $request_filename) {
rewrite ^/index.php(.*)$ /index.php?s=$1 last;
rewrite ^/admin.php(.*)$ /admin.php?s=$1 last;
rewrite ^/api.php(.*)$ /api.php?s=$1 last;
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}PHP location/FastCGI 配置仍由面板管理,重写规则不能代替 PHP 服务设置。先执行 nginx -t 检查语法,通过后只重载相关服务。
验证
分别检查首页、分类、详情、后台和 API。若动态入口通而静态路由不通,核对程序的 URL 模式及 application/route.php。失败恢复原站点规则,不删除安装锁来重装。