Creating a Custom 404 Error
From Joomla! Documentation
This page has been archived. This page contains information for an unsupported Joomla! version or is no longer relevant. It exists only as a historical reference, it will not be improved and its content may be incomplete and/or contain broken links.
This tutorial will show you how to create a custom 404 error page for use in your Joomla web-site. Please note, that the approach below sends 200 HTTP code to browser instead of expected 404 (since it finally renders a regular joomla article). The approach tells search engine not to index the page by disallowing it in robots.txt. This doesn't seem to be the best solution.
Four Steps to Creating a Custom 404 Error Page[edit]
- Create an Uncategorized '404' Article
- Create an 'uncategorized' article in Joomla! to serve as your 404 Page. Include some text such as Sorry, we could not find the page you were looking for... and if necessary, also any useful navigational links. For example, you may wish to add a link back to your site's home page.
- Create and copy a link to that new 404 Article.
- Create a menu item which links to the new 404 Article and 'apply' your changes. Then copy the URL information (index.php?optio...), set the menu item as 'unpublished' and close out of the menu editing page. You may want to paste the copied URL into Notepad or somewhere accessible for the time-being.
- Copy error.php to your Template's Directory
- In your Joomla! installation copy the file error.php from the templates/system directory, to your Template directory. For example, if I was using a template named 'Cleancloud' I would copy the error.php file to the templates/cleancloud directory.
- Modify error.php to Redirect 404 Errors to your 404 Article
- Edit the error.php file as follows, adding the code below immediately under the 'restricted access' line:
If you are using Joomla 1.6, 1.7, 2.5, or 3.x please use this detection code:
if (($this->error->getCode()) == '404') {
header('Location: /index.php?option=com_content&view=article&id=75');
exit;
}
Replace the location information (index.php?option..) with the URL from the menu item you created.
If you are using Joomla 1.5 and below please use this detection code instead:
if (($this->error->code) == '404') {
header('Location: /index.php?option=com_content&view=article&id=75');
exit;
}
Exclude your Custom 404 Error Page from Search Engines[edit]
- In Joomla 3.x: in Article Manager > Edit Article > [Publishing] > set "Robots" to "Noindex".
- In Joomla 2.5: in Article Manager > Edit Article > [Metadata Options] > set "Robots" to "Noindex".
- In other versions, add the following line to the robots.txt file located in the root directory of your Joomla! installation. Replace the (index.php?option..) location with your 404 Article URL.
Disallow: /index.php?option=com_content&view=article&id=75
Additional Steps Toward a Better Custom 404 Error Page[edit]
- Follow the Best-Practices described here: http://www.alistapart.com/articles/perfect404/
- Be creative, add a 404 Haiku or maybe an Interesting Photo