自定义 404 页面

2017 年 3 月 11 日 ashmaroli ashmaroli

你可以轻松地使用 Jekyll 提供自定义 404 错误页面,以替换默认的错误 404 – 未找到文件页面,该页面会在有人尝试访问你网站上的损坏链接时显示。

在 GitHub Pages 上

任何位于_site 目录根目录中的 404.html 都将由 GitHub Pages 和本地 WEBrick 开发服务器自动提供。

只需在网站源目录的根目录中添加一个 404.md404.html,并包含前端数据以使用主题的基本布局。

如果你计划在子目录下组织你的文件,则错误页面应具有以下前端数据,设置:permalink: /404.html。这是为了确保编译后的 404.html 位于已处理网站的根目录中,服务器将在该目录中选择它。

---
# example 404.md

layout: default
permalink: /404.html
---

# 404

Page not found! :(

在 Apache Web 服务器上托管

Apache Web 服务器加载名为 .htaccess 的配置文件,该文件修改了这些服务器的功能。

只需将以下内容添加到你的 .htaccess 文件中。

ErrorDocument 404 /404.html

使用 .htaccess 文件,你可以自由地将错误页面放置在子目录中。

ErrorDocument 404 /error_pages/404.html

其中路径相对于你网站的域。

有关配置 Apache 错误页面的更多信息,请参阅 官方文档

在 Nginx 服务器上托管

该过程与配置 Apache 服务器一样简单,但略有不同。

nginx 配置文件取决于安装它的系统。在大多数系统中,它是 nginx.conf 文件,它通常位于 /etc/nginx//etc/nginx/conf/ 中。但是,在其他系统(如 Ubuntu)中,你必须查找包含服务器相关信息的 default nginx 配置文件,它通常位于 /etc/nginx/sites-available//etc/nginx/sites-enabled/ 中。将以下内容添加到你的 nginx 配置文件中, nginx.conf 文件或 default 文件

server {
  error_page 404 /404.html;
  location = /404.html {
    internal;
  }
}

如果 server 块已存在,则只添加上面给出的 server 块内的代码。 location 指令阻止用户直接浏览 404.html 页面。

可以在 nginx 官方文档 中找到有关 nginx 错误页面的更多信息。

编辑配置文件时请谨慎操作。