36dd5483f Clarify placement of 404 template 6f0a5f3f0 Update urls.Parse.md c8070e578 Remove reference to Internet Explorer conditional comments (#1975) 3e3458f09 Describe default source map behavior for js.build (#1974) 08c9ed09a Simplify ordinal abbreviation example... (#1970) b5aa8d598 docs(markdownify): mention a context limitation (#1968) 596af47f5 Fixing typo in configuration.md doc (#1966) c47cadfcb Fix `hardWraps` config spelling (#1964) 5739a174e Add detail to tabWidth highlighting option 73a4bcd1f doc: Add hugo-lyra search engine (#1959) 6cc9ebdfd Update uniq function example (#1963) 686a65cf6 Update uniq.md 096f794d0 Update uniq.md 914ca0c38 remove `version` from SVG example (#1957) 58347d41f Update theme 7c806371f Fix 404 error for CloudCannon community learn docs (#1955) 58e42b03d Update theme fd0385ee2 Update theme 513b7a43a Update findRe.md 4d39137ef Update configuration.md b1c3b58a7 Update configuration.md f827cce8d Update configuration.md 3d72ed8fb netlify: Hugo 0.110.0 e6f969c87 Merge branch 'feat/config-rename' 4c0b5a0b5 dos: Regen CLI docs 05d9db705 docs: Regen docshelper f73bdb6e5 Merge commit 'ef6f101e75256c3bb88a6f1f3b5c1273bf8d7382' e83141f88 Format config 4cadf795e Rename config.toml -> hugo.toml c8aa8617f Move config/_default/config.toml -> config.toml 2943c031a Add fill HTTP Response info into .Data in resources.GetRemote git-subtree-dir: docs git-subtree-split: 36dd5483fb8efb6db4488bbaca5f6ac855f8ffea
3.6 KiB
title | linktitle | description | date | publishdate | categories | keywords | menu | weight | draft | aliases | toc | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Custom 404 Page | 404 Page | If you know how to create a single page template, you have unlimited options for creating a custom 404. | 2017-02-01 | 2017-02-01 |
|
|
|
120 | false | false |
When using Hugo with GitHub Pages, you can provide your own template for a custom 404 error page by creating a 404.html template file in the root of your layouts
folder. When Hugo generates your site, the 404.html
file will be placed in the root.
404 pages will have all the regular page variables available to use in the templates.
In addition to the standard page variables, the 404 page has access to all site content accessible from .Pages
.
▾ layouts/
404.html
404.html
This is a basic example of a 404.html template:
{{< code file="layouts/404.html" download="404.html" >}} {{ define "main"}}
<a href="{{ "" | relURL }}">Go Home
Automatic Loading
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:
- GitHub Pages and GitLab Pages. The 404 page is automatic.
- Apache. You can specify
ErrorDocument 404 /404.html
in an.htaccess
file in the root of your site. - Nginx. You might specify
error_page 404 /404.html;
in yournginx.conf
file. Details here. - Amazon AWS S3. When setting a bucket up for static web serving, you can specify the error file from within the S3 GUI.
- Amazon CloudFront. You can specify the page in the Error Pages section in the CloudFront Console. Details here
- Caddy Server. Use the
handle_errors
directive to specify error pages for one or more status codes. Details here - Netlify. Add
/* /404.html 404
tocontent/_redirects
. Details Here - Azure Static Web App. set
responseOverrides.404.rewrite
andresponseOverrides.404.statusCode
in configfilestaticwebapp.config.json
. Details here - Azure Storage as Static Web Site Hosting. You can specify the
Error document path
in the Static website configuration page of the Azure portal. Details here. - DigitalOcean App Platform. You can specify
error_document
in your app specification file or use control panel to set up error document. Details here. - Firebase Hosting:
/404.html
automatically gets used as the 404 page.
{{% note %}}
hugo server
will not automatically load your custom 404.html
file, but you
can test the appearance of your custom "not found" page by navigating your
browser to /404.html
.
{{% /note %}}