Looking for somewhere to host your site? Browse our PHP web hosts section!

Home > Tutorials > Custom error pages using .htaccess

Custom error pages using .htaccess

Introduction

We've all seen the dreaded Error 404 message - the result of broken links and mistyped URLs. You've probably been on some websites where the error pages are customised with their own logo and message, and I'm sure you'll agree that it looks far more professional than the standard one.

In this article we'll show you how to use Apache's .htaccess file to make your own customised error 404 pages.

Create the .htaccess file

Create a new text file on your computer, and call it "htaccess.txt". Enter the following lines:

<Files .htaccess>
	
order allow,deny
deny from all
</Files>

ErrorDocument 404 /errordocs/error404.htm

The first part stops people viewing your .htaccess file. The second part tells Apache to redirect any 404 errors to the file "error404.htm".

Create the 404 page

Now you need to create the 404 page. Make a new web page called "error404.htm" and enter "This is my 404 page". Enter it a few dozen times, as Internet Explorer won't display it unless the file is over 512 bytes.

Once it's done, login to your webspace with your FTP client, and create a new folder called "errordocs". Upload the file "error404.htm" to this directory. Upload "htaccess.txt" to the root of your webspace and rename it to ".htaccess" ó there's no .txt at the end, no name in front, just ".htaccess". If the file seems to vanish don't worry, some FTP clients don't display it ó the file's still there.

Trying it out

Now you need to see if it works. Type the URL of your website in your browser and add a random file name at the end. Something like "http://www.yoursite.com/dgsgdgsdgdsgg.htm".

If everything has worked properly, you should now be seeing your custom error message. If not, then it's possible your web host doesn't allow you to have your own .htaccess files. You may want to contact them and ask.

If it worked then you can now make a proper 404 page. You can have your own images, text, in fact anything else you can have in a normal web page. The best 404 pages have the site logo and a few simple lines explaining what's happened. If you have a site search, you could put that on it too in order to help visitors find what they're looking for.

Taking it further

There's several other error documents that you might wish to customise.

400 - Bad request
401 - Authorization Required
403 - Forbidden directory
404 - Page not found
500 - Internal Server Error

For each one you want to use, simply add a line to your .htaccess file and create the corresponding page.

<Files .htaccess>
order allow,deny
deny from all
</Files>

ErrorDocument 403 /errordocs/error403.htm
ErrorDocument 404 /errordocs/error404.htm
ErrorDocument 500 /errordocs/error500.htm