Merge pull request #5946 from ashmaroli/custom-404-tuts
Merge pull request 5946
This commit is contained in:
		
						commit
						220335cef7
					
				|  | @ -0,0 +1,66 @@ | |||
| --- | ||||
| layout: tutorials | ||||
| permalink: /tutorials/custom-404-page/ | ||||
| title: Custom 404 Page | ||||
| --- | ||||
| 
 | ||||
| You can easily serve custom 404 error pages with Jekyll to replace the default **Error 404 -- File Not Found** page displayed when one tries to access a broken link on your site. | ||||
| 
 | ||||
| 
 | ||||
| ## On GitHub Pages | ||||
| 
 | ||||
| Any `404.html` at the **root of your `_site` directory** will be served automatically by GitHub Pages and the local WEBrick development server. | ||||
| 
 | ||||
| Simply add a `404.md` or `404.html` at the root of your site's source directory and include the YAML Front Matter data to use the theme's base layout. | ||||
| 
 | ||||
| If you plan to organize your files under subdirectories, the error page should have the following Front Matter Data, set: `permalink: /404.html`. This is to ensure that the compiled `404.html` resides at the root of your processed site, where it'll be picked by the server. | ||||
| 
 | ||||
| ``` | ||||
| --- | ||||
| # example 404.md | ||||
| 
 | ||||
| layout: default | ||||
| permalink: /404.html | ||||
| --- | ||||
| 
 | ||||
| # 404 | ||||
| 
 | ||||
| Page not found! :( | ||||
| ``` | ||||
| 
 | ||||
| ## Hosting on Apache Web Servers | ||||
| 
 | ||||
| Apache Web Servers load a configuration file named [`.htaccess`](http://www.htaccess-guide.com/) that modifies the functionality of these servers. | ||||
| 
 | ||||
| Simply add the following to your `.htaccess` file. | ||||
| 
 | ||||
| ``` | ||||
| ErrorDocument 404 /404.html | ||||
| ``` | ||||
| 
 | ||||
| With an `.htaccess` file, you have the freedom to place your error page within a subdirectory. | ||||
| 
 | ||||
| ``` | ||||
| ErrorDocument 404 /error_pages/404.html | ||||
| ``` | ||||
| 
 | ||||
| Where the path is relative to your site's domain. | ||||
| 
 | ||||
| More info on configuring Apache Error Pages can found in [official documentation](https://httpd.apache.org/docs/current/mod/core.html#errordocument).  | ||||
| 
 | ||||
| 
 | ||||
| ## Hosting on Nginx server | ||||
| 
 | ||||
| The procedure is just as simple as configuring Apache servers, but slightly different. | ||||
| 
 | ||||
| Add the following to the ngnix configuration file, `nginx.conf`, which is usually located inside `/etc/nginx/` or `/etc/nginx/conf/`: | ||||
| 
 | ||||
| ``` | ||||
| server { | ||||
|   error_page 404 /404.html; | ||||
|   location  /404.html { | ||||
|     internal; | ||||
|   } | ||||
| } | ||||
| ``` | ||||
| The `location` directive prevents users from directly browsing the 404.html page. | ||||
		Loading…
	
		Reference in New Issue