Htaccess: Site error documents

Revision as of 13:24, 29 June 2008 by Ric (talk | contribs) (New page: <span id="top"></span> <div style="padding:0;margin:0; border-bottom:3px inset #000000"> {| | MPG UniCenter || .htaccess: [[Htaccess: Introduction | Introduc...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

.htaccess - Apache directory-level configuration file

Site error documents

Apache provides some bland error documents however you are not restricted to using these you can provide your own and match them to your sites look.

Whats errors produce what

The following are a list of the Apache error numbers and what they relate to:

Successful Client Requests Client Request Errors Server Errors
201 Created 400 Bad Request 500 Internal Server Error
202 Accepted 401 Authorization Required 501 Not Implemented
203 Non-Authorative Information 403 Forbidden 502 Bad Gateway
204 No Content 404 Not Found 503 Service Unavailable
205 Reset Content 405 Method Not Allowed 504 Gateway Timeout
206 Partial Content 406 Not Acceptable (encoding) 505 HTTP Version Not Supported
Client Request Redirected 407 Proxy Authentication Required  
300 Multiple Choices 408 Request Timed Out  
301 Moved Permanently 409 Conflicting Request  
302 Moved Temporarily 410 Gone  
303 See Other 411 Content Length Required  
304 Not Modified 412 Precondition Failed  
305 Use Proxy 413 Request Entity Too Long  
  414 Request URI Too Long  
  415 Unsupported Media Type  

Note: There is no need to create error pages for all the above, following are worth considering: 401, 403, 404 and 500

Top

How to create customised error documents

Create a new folder in your root folder (www) and name it errors. This folder contains all the error pages you wish to display. For example not_found.html this will be displayed when a page cannot be found on your web site.

Now open the root htaccess file (the one in your root folder www) and add the following line:

ErrorDocument 404 /errors/not_found.html

Save the file. The command ErrorDocument 404 will forward a user to yoursite/errors/not_found.html file when ever Apache produces the error 404.

Note 1: The files and folder can be named anything you like.
Note 2: You can use a full URL (as oppose to a virtual path) to your error file for example: http://yoursite.com/errors/not_found.html

If you create error pages for the above your htaccess file will look similar to this when using virtual paths:

  • ErrorDocument 401 /errors/auth_reqired.html
  • ErrorDocument 403 /errors/forbidden.html
  • ErrorDocument 404 /errors/not_found.html
  • ErrorDocument 500 /errors/server_error.html

Or look like similar to this if when using full URL paths:

  • ErrorDocument 401 http://yoursite.com/errors/auth_reqired.html
  • ErrorDocument 403 http://yoursite.com/errors/forbidden.html
  • ErrorDocument 404 http://yoursite.com/errors/not_found.html
  • ErrorDocument 500 http://yoursite.com/errors/server_error.html

Top

Example

The following shows a little more detail first create the error page to be displayed

Comment Code
  1. Create a new folder in www named errors.
  2. In this folder create a file named not_found.html 
  3. Add the code shown on the right to it.
  4. Save the file
<html>
 <title>Not found</title>
  <body>
    <p>Example of a not found page</p>
  </body>
</html>

Add the command to htaccess:

Comment Code
  1. Navigate to the root folder www.
  2. Open the .htaccess file
  3. Add the command shown on the right last line.
  4. Save the file
# This file provides security to the server limiting access to the localhost only.
# Comment to deactivate.

Order Deny,Allow
Deny from all
Allow from 127.0.0.1

# To allow execution of cgi scripts in this directory uncomment next two lines. 

AddHandler cgi-script .pl .cgi
Options +ExecCGI

# To unlock your server, comment the next 4 lines.
# Defaults: Username = admin; Password = userver

#AuthName "Uniform Server - Secure Server Access"
#AuthType Basic
#AuthUserFile /htpasswd/www/.htpasswd
#Require valid-user

ErrorDocument 404 /errors/not_found.html

Testing

  1. Run the server using Server_Start.bat
  2. In the browser address bar type http:/localhost/fred.html or some other file that does not exist.
  3. Apache will generate the error code 404 and redirect to your not_found.html page

Experiment with the ErrorDocument command and create a few pages.

Top


  Ric