Archived

Creating a Custom 404 Error: Difference between revisions

From Joomla! Documentation

Mvangeest (talk | contribs)
m Tutorial:Create a Custom 404 Error Page moved to Create a Custom 404 Error Page: Moved page to main namespace because the Tutorial namespace is deprecated
Tom Hutchison (talk | contribs)
m Tom Hutchison moved page Archive:Creating a Custom 404 Error to Archived:Creating a Custom 404 Error without leaving a redirect: Duh archived not archive
 
(21 intermediate revisions by 15 users not shown)
Line 1: Line 1:
This tutorial will show you how to create a custom 404 Error Page for use in your Joomla 1.5 Web Site.
<noinclude><languages /></noinclude>


This page summarizes popular techniques for adding Joomla! 404 Error Pages, as discussed by Amy Stephens and others in the Joomla! Forum Post [http://forum.joomla.org/viewtopic.php?f=199&t=251089 Custom 404 Inside the Content Area]
<translate>
<!--T:1-->
This tutorial will show you how to create a custom 404 error page for use in your Joomla web-site.
</translate>
<translate>
<!--T:13-->
'''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.'''</translate>


<translate>
== Four Steps to Creating a Custom 404 Error Page == <!--T:2-->
</translate>
<translate>
<!--T:3-->
# '''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.
</translate>
<translate>
<!--T:4-->
# '''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.
</translate>
<translate>
<!--T:5-->
# '''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.
</translate>
<translate>
<!--T:6-->
# '''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:
</translate>


== Four Steps to Creating a Custom 404 Error Page ==
<source lang="php">
 
if (($this->error->getCode()) == '404') {
 
header('Location: /index.php?option=com_content&view=article&id=75');
 
'''1.  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.
 
 
'''2.  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.
 
 
'''3.  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.
 
 
'''4.  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:
 
<pre> if (($this->error->code) == '404') {
header('Location: index.php?option=com_content&view=article&id=75');
exit;
exit;
} </pre>
}
</source>


<translate>
<!--T:7-->
Replace the location information (index.php?option..) with the URL from the menu item you created.
Replace the location information (index.php?option..) with the URL from the menu item you created.


<!--T:8-->
If you are using Joomla 1.5 and below please use this detection code instead:
</translate>
<source lang="php">
if (($this->error->code) == '404') {
header('Location: /index.php?option=com_content&view=article&id=75');
exit;
}
</source>


<translate>
==Exclude your Custom 404 Error Page from Search Engines== <!--T:9-->
* 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 [[S:MyLanguage/robots.txt file|robots.txt]] file located in the root directory of your Joomla! installation. Replace the (index.php?option..) location with your 404 Article URL.
</translate>
*: <code>Disallow: /index.php?option=com_content&view=article&id=75</code>


== Additional Steps toward a Better Custom 404 Error Page ==
<translate>
 
== Additional Steps Toward a Better Custom 404 Error Page == <!--T:10-->
 
* Follow the Best-Practices described here:  http://www.alistapart.com/articles/perfect404/
* Add the following line to the robots.txt file located in the root directory of your Joomla! installation.
* Be creative, add a [http://www.geekhaiku.com/tag/404/ 404 Haiku] or maybe an [http://www.smashingmagazine.com/2007/08/17/404-error-pages-reloaded Interesting Photo]
</translate>


  <pre>Disallow: /index.php?option=com_content&view=article&id=75</pre>
<translate>
 
== More Custom Error Page Information == <!--T:11-->
Replacing the (index.php?option..) location with your 404 Article URL.
* [[S:MyLanguage/Custom_error_pages|Custom Error Pages]]
 
* [[S:MyLanguage/System_error_pages|System Error Pages]]
*  Follow the Best-Practices described here:  http://www.alistapart.com/articles/perfect404/
 
*  Be creative, add a [http://www.geekhaiku.com/tag/404/ 404 Haiku] or maybe an [http://www.smashingmagazine.com/2007/08/17/404-error-pages-reloaded Interesting Photo]
 
 
 
 
'''More Custom Error Page Information:'''
 
* [http://docs.joomla.org/Custom_error_pages Joomla! Documentation: Custom Error Pages]
* [http://docs.joomla.org/System_error_pages Joomla! Documentation: System Error Pages]
* [http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html HTTP/1.1 Status Code Definitions]
* [http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html HTTP/1.1 Status Code Definitions]
* [http://www.google.com/support/webmasters/bin/answer.py?answer=83040&topic=8474 Google Webmaster - Analyzing Crawl Errors]
* [http://www.google.com/support/webmasters/bin/answer.py?answer=83040&topic=8474 Google Webmaster - Analyzing Crawl Errors]
</translate>




 
<translate>
 
<!--T:12-->
[[Category:Tutorials]]
[[Category:Tutorials]]
</translate>

Latest revision as of 13:18, 5 October 2019

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

  1. 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.
  2. 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.
  3. 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.
  4. 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

  • 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

More Custom Error Page Information