2013-08-21 16:21:53 +00:00
---
2014-05-29 22:42:05 +00:00
aliases:
- /layout/404/
2016-01-06 22:45:19 +00:00
lastmod: 2015-12-30
2014-05-29 22:42:05 +00:00
date: 2013-08-21
2015-01-09 18:51:15 +00:00
linktitle: "Custom 404 page"
2014-04-23 07:00:11 +00:00
menu:
main:
2014-05-29 22:42:05 +00:00
parent: layout
next: /taxonomies/overview
notoc: true
2015-05-25 19:16:10 +00:00
next: /templates/debugging
2014-05-29 22:42:05 +00:00
prev: /templates/sitemap
title: 404.html Templates
weight: 100
2013-08-21 16:21:53 +00:00
---
2014-12-04 16:26:12 +00:00
When using Hugo with [GitHub Pages ](http://pages.github.com/ ), you can provide
2015-08-04 18:00:08 +00:00
your own template for a [custom 404 error page ](https://help.github.com/articles/custom-404-pages/ )
by creating a 404.html template file in your `/layouts` folder.
When Hugo generates your site, the `404.html` file will be placed in the root.
2013-08-21 16:21:53 +00:00
2016-11-20 22:00:57 +00:00
404 pages will have all the regular [page
2013-08-21 16:21:53 +00:00
variables](/layout/variables/) available to use in the templates.
2016-11-20 22:00:57 +00:00
In addition to the standard page variables, the 404 page has access to
2014-12-04 16:26:12 +00:00
all site content accessible from `.Data.Pages` .
2013-08-21 16:21:53 +00:00
▾ layouts/
404.html
## 404.html
2015-01-09 18:51:15 +00:00
2013-08-21 16:21:53 +00:00
This is a basic example of a 404.html template:
2014-09-03 04:12:26 +00:00
{{ partial "header.html" . }}
{{ partial "subheader.html" . }}
2013-08-21 16:21:53 +00:00
< section id = "main" >
< div >
< h1 id = "title" > {{ .Title }}< / h1 >
< / div >
< / section >
2015-01-29 20:18:19 +00:00
{{ partial "footer.html" . }}
2013-08-21 16:21:53 +00:00
2015-05-15 15:04:25 +00:00
### Automatic Loading
2015-08-04 18:00:08 +00:00
Your 404.html file can be set to load automatically when a visitor enters a mistaken URL path, dependent upon the web serving environment you are using. For example:
2015-05-15 15:04:25 +00:00
2015-08-04 18:00:08 +00:00
* _GitHub Pages_ - it's automatic.
2015-05-15 15:04:25 +00:00
* _Apache_ - one way is to specify `ErrorDocument 404 /404.html` in an `.htaccess` file in the root of your site.
2015-08-04 18:00:08 +00:00
* _Nginx_ - you might specify `error_page 404 = /404.html;` in your `nginx.conf` file.
2015-05-15 15:04:25 +00:00
* _Amazon AWS S3_ - when setting a bucket up for static web serving, you can specify the error file.
2015-12-30 09:19:28 +00:00
* _Caddy Server_ - using `errors { 404 /404.html }` . [Details here ](https://caddyserver.com/docs/errors )