hugo/content/en/templates/404.md
Bjørn Erik Pedersen cf591b7c0c Squashed 'docs/' changes from 1214f6ffb..36dd5483f
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
2023-02-23 07:52:04 +01:00

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
templates
404
page not found
docs
parent weight
templates 120
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

{{ end }} {{< /code >}}

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 your nginx.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 to content/_redirects. Details Here
  • Azure Static Web App. set responseOverrides.404.rewrite and responseOverrides.404.statusCode in configfile staticwebapp.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 %}}