伪静态规则与 301 跳转、404 页面配置

分类:安装部署 · 更新于 2026-11-05 · 约 932 字

配置 Nginx 伪静态分发、301 跳转与自定义 404 页面,统一域名与地址规范。

一、伪静态分发规则

本系统由 index.php 统一分发,需先让 Nginx 把不存在的路径交给入口处理:

location / {
    try_files $uri /index.php?__route=$uri&$args;
}

该规则与 config/routes.php 配合,信息详情、分类列表等地址都由它映射。改完执行 nginx -t 校验语法,再重载生效。

若你此前用 IIS,web.config 中的 rewrite 规则不再适用,请改用上面的 Nginx 写法。

二、301 跳转:统一域名

把所有裸域名统一跳到主域名,避免同一内容出现两个地址:

server {
    listen 80;
    server_name 你的域名.com;
    return 301 http://www.你的域名.com$request_uri;
}

多条跳转规则分别写在各自的 server 块中,逐个启用,不要在一个块里堆多条,便于排错。

三、HTTP 强制跳转 HTTPS

证书配好后,把 80 端口的访问整体跳到 https:

server {
    listen 80;
    server_name www.你的域名;
    return 301 https://$host$request_uri;
}

若同时要做裸域名与协议两项跳转,可先跳协议再跳域名,最终都落到带 www 的同一个 HTTPS 地址上。

四、自定义 404 页面

框架已内置错误处理,模板目录备有 NotFound.html。让它接管错误页:

error_page 404 /index.php?__route=/404;

也可指向静态页 error_page 404 /404.html;,把 404.html 放到站点根目录。配置后访问一个不存在的地址,确认返回状态码为 404 且显示自定义内容。

五、检查与常见坑

  1. 跳转生效前先清浏览器缓存,301 会被浏览器长期缓存。
  2. 跳转后地址栏应只剩一个规范域名,出现循环跳转多为两条规则互相指向。
  3. 伪静态与 404 都不生效时,先确认改动写进了当前站点配置,而非模板里的默认配置。
  4. 每次改动后执行 nginx -t && nginx -s reload,语法错误会导致整站不可用。

相关教程

文档对不上实际界面?可在常见问题中查找排查步骤,或按「安装部署」中的环境要求核对版本。