Welcome guest. Before posting on our computer help forum, you must register. Click here it's easy and free.

Author Topic: How to set a custom 404 (not found) error page  (Read 16042 times)

0 Members and 1 Guest are viewing this topic.


    Topic Starter
  • Web moderator

  • Hacker

  • kpac®
  • Thanked: 184
    • Yes
    • Yes
    • Yes
  • Certifications: List
  • Computer: Specs
  • Experience: Expert
  • OS: Windows 7
How to set a custom 404 (not found) error page
« on: October 19, 2008, 04:00:30 AM »
What do you usually do when you click a URL and encounter a "404 - File Not Found" error? Do you:

   1. Click on the BACK button of your browser and go somewhere else?
   2. Try to back up one directory in the URL and try again?
   3. Write to the webmaster of the site and the referring site to inform them of the situation?

If you are like most people, you'll simply click on the BACK button and try another place. The majority of people don't even know that there are any other alternatives.

You thus need to do something so that you do not lose this group of people who come to your site by following an old link or by typing your URL incorrectly.

Requirements for Customizing the 404 File Not Found Page

If your web host has this facility, you will usually find mention of this somewhere in their documentation. In fact, if they mention somewhere that you can customize a file named ".htaccess", it probably means that you can also customize your 404 File Not Found error page.

The .htaccess file is what Apache web servers use to allow you to fine-tune your web server configurations at a directory level. Other types of web servers handle the customization of 404 error pages differently.

1. Creating/Modifying the .htaccess File

This step may not be necessary in all situations. Some web hosts already configure their web server so that it will look for a specific file in your web directory when a certain document cannot be found. If so, simply skip this step.

If your web server is not an Apache web server, you will have to find out from your web host what you need to do to enable the server to serve your customized file when a file cannot be found.

Otherwise, the first thing you need to do is to add the following line to a file named ".htaccess" (without the enclosing quotes and with the preceding full stop). In most instances, no such file will exist, and you can simply create one with a text editor (such as Notepad on Windows).

ErrorDocument 404 /notfound.html

You will of course need to put a "notfound.html" file in the main web directory for the above directive to work.

The "ErrorDocument 404" directive essentially tells the Apache web server that whenever it cannot find the file it needs in that directory and its subdirectories, it is to use the document specified in the URL that follows.

One .htaccess file in your main directory will do the trick for that directory and its subdirectories. However, if you want a certain subdirectory to show a different 404 File Not Found message, you can always place a .htaccess file into that directory. This will override any .htaccess files you have in the parent directories.

2. Creating Your Error Document File

What should go into your custom 404 not found page?

It is insufficient to simply let the visitor know that the file could not be found. In order not to lose that visitor, you will have to provide him some way to locate the document he wanted, or you would have lost him.

Your page should have one or more of the following things:

   1. A link to your main page, with a suggestion that the visitor can find what he wants there.
   2. If you have a search engine for your website, you should definitely put a search box on that page. Many people prefer to simply type a query than to scan through your site map.
   3. A link to your site map, which lists all the pages on your website.
   4. If you know of frequently mistyped URLs on your site, you can even put links to the correct location directly on the page, so that visitors who arrive there from outside can quickly get to the correct page. Remember, you don't want to lose that visitor, so do all you can to help him.
   5. Any other navigational aids that you may have - for example, if you have a drop down navigation menu on your normal pages, you should probably put one here as well.

If you like, you can even put a simple form on the page to allow your visitors to inform you of the broken link. However, the primary aim of this page is not to help you track bad links, but to make sure your visitor does not leave your site if what he wants can be found there.

Incidentally, you should make your 404 page larger than 512 bytes, even when you are testing. Otherwise Internet Explorer (IE) will load what it calls its built-in "friendly HTTP error message" instead of your 404 page.

3. Testing the Error Document

When you're satisfied with your page, upload it together with your .htaccess file to your website. Then test it by typing a URL that you know does not exist.

Your error page should load up. From this error page, test to see that the links here lead to the pages you intended it to lead.

Common Errors with a 404 Custom Error Page

1. The most common error people have with their custom error page is making a mistake in the URL they put in their .htaccess file. This leads the web server into a loop when a visitor tries to access a missing file. When a file cannot be found the server tries to load the file specified in your ErrorDocument directive. But that file does not exist too, so it tries to load the file specified in that directive. You get the idea.
Make sure you test your error file by typing in a non-existent URL. Do not test it by typing its real URL - that will of course work but it will prove nothing.
2. Another common error is to forget that your 404 error page may be loaded either from the main directory or from a subdirectory or even your CGI-BIN directory. When you put links on your 404 document not found page, such as hyperlinks leading to other pages on your site or links to images (such as your logo), be sure that you use the full URL and not a relative link. That is, use things like

<a href="http://www.example.com/sitemap.html">Site Map[/url] [/b]

instead of

<a href="sitemap.html">Site Map[/url] [/b]

The first will work even if the 404 page appears for a missing file in a subdirectory, but the second will not.