如何为Hexo设置404页面,Nginx如何设置404页

先设计一个404页面,比如我的设计的404页。

http://www.tuijiankan.com/404.html

代码如下:

<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><title>【404 Not Found】页面未找到!</title><style>html{font:100%/1.3 "Roboto",Verdana;text-align:center}body{margin:0;padding:0;margin:0 auto;width:980px}.fobidden{font-size:72px;color:#f60;}.info{font-size:18px;color:#9b9b9b}.container{margin:0 auto;padding:10px}.logo{text-align:left}h1{padding:0;margin:50px 0 0 0}h3{margin:0}.logo{margin:10px 0 0 0}}</style></head><body><div class="container"><section class="body"><h1 class="fobidden">404 Not Found</h1><p class="info">你要访问的网页不存在,What the fuck! <a href="/" style="text-decoration: none;margin-left:10px;">点击返回</a></p><p><a href="/"><img src="http://cdn.tuijiankan.com/robot.jpg"></a></p></section></div></body></html>

我做了压缩处理,让页面尽可能小,但也不能太小,如果小于512byte,系统将不会这个页面作为404页。

对于Hexo来说,设计好的这个404页面需要放到source目录下,而且为了避免运行hexo g时被模板解析,这个404代码最上方需要增加

layout:false
---

这样模板才算做好。

但是这个模板虽然在运行hexo g之后会生成到hexo根目录下,但是如果nginx不设置的话,一样无法使用这个页面为默认404页面。

Nginx设置404页面操作方法:

  1. 在nginx.conf中的http区域加入(vi /etc/nginx/nginx.conf):

fastcgi_intercept_errors on;

  1. 在nginx.conf的server区域(如果网站有单独的配置文件,则需要在其配置文件的server区域内加入)加入:

error_page 404 = /404.html;

  1. 重启Nginx服务 service nginx restart

这时Hexo的404页面就生效了,测试下 http://www.tuijiankan.com/bucunzai