April 22, 2005

Custom Error Messages

Updated. Originally published Jan 2, 2004

Error messages are the messages that are displayed when a visitor to your site encounters a server error. The most common error messages are 404: File Not Found and 403: Access Forbidden. The 404 error message is displayed when a visitor to your site tries to access a page that does not exist on your server. The 403 message is displayed when a visitor tries to enter an area on your site that is off limits to the public.

You can customize your error messages so that instead of seeing an ugly server message, your visitor sees instead a personalized note from you. The methods are different depending on if you are doing static (the default) or dynamic publishing in Movable Type.

Static Publishing Error Templates

If you use an Apache server you can customize your error messages by creating or editing your .htaccess file. Here are the steps:

Step 1: Create 403 and 404 error html documents:

Create new html files with the error messages that you want to convey for 403 errors and 404 errors. Save the files as 403.html and 404.html.

You can word the contents of these documents however you please. Place the html documents in your public_html directory.

Step 2: Change or create your .htaccess file.

Inside your public_html directory, or one of its subdirectories, you may have a file named .htaccess (see What is .htaccess?). If an .htaccess file isn't already there, create a simple text file named .htaccess in a text editor. Now add the following lines to your .htaccess file.

ErrorDocument 403 PATH
ErrorDocument 404 PATH

Make sure to replace where it says PATH with the path to that error message.

For example, your .htaccess file may look something like this if you have uploaded the html files and the .htaccess file to the same directory:

ErrorDocument 403 /403.html
ErrorDocument 404 /404.html

Step 3: Upload your new .htaccess file to your server using an ftp program.

Then test it out! This method can also be used with the other error codes: 400, 401, and 500.

Dynamic Publishing Error Templates

If you use dynamic publishing, Movable Type will point to the Dynamic Pages Error Template in your blog if a page can't be found. The default template body of this template is:

<p>The requested page could not be found.</p>
<h4 class="error-message"><$MTErrorMessage$></h4>

At the time of this writing, the MT Manual specifies that the the $MTErrorMessage$ tag can only be used in the Comment Error Template. The tag is replaced with the text of the error that occurred in the comment submission process. However, this tag also appears in the default Dynamic Pages Error Template. So, I'm assuming that if there is a system generated specific error message, the $MTErrorMessage$ tag will produce it. (Sometimes the MT Manual is a bit out of date.) You can change the message that comes between the p tags and replace The requested page could not be found. with something else.

In MT 3.12 the tag <MTHTTPErrorCode> was introduced. The tag only works with dynamic pages and can be used with a little PHP to generate different error messages for different error codes. Arvind has documented how to use the MTHTTPErrorCode tag to customize error messages in his Movalog tutorial - Custom Error Messages.

Additional Information

404 Redirects
I recently changed all of the file extensions on one of my blogs from html to php. Scripty Goddess wrote a 404 redirect PHP script that automatically redirects visitors to the .php file when they try to access the .html file that is no longer there. This script works if the URL paths are the same except for the html and php extensions.

Apache.org tutorial on .htaccess
Error code definitions
A good discussion on 404 error codes - what you should say (and shouldn't say) on your custom page, and javascript code for further customization.
Dynamic Pages Custom Error Messages

Cool custom error messages:
Bah! I've messed up.
Nothing here by that name
Sorry, but that page you were looking for can't be found.
It appears you've landed on a page that doesn't exist.
Tried to dash in from the rain?
Once upon a time there was a web page. It was witty and smart.
Wrong Page. Your artfulness has failed you.

Have one to recommend? Let me know in the comments!

Has this tutorial been helpful? Please consider linking to Learning Movable Type at http://learningmovabletype.com/ . Thanks!

Posted by Elise Bauer on April 22, 2005 to Servers
Comments(5) | Email to a friend | Printer-friendly version


If you would like to send a trackback
please use the following URL: http://learningmovabletype.com/cgi-bin/mt32/mt-tb.cgi/159


Thanks for this! I'm trying several of your mods on my blog (all errors are mine), and find your site THE reference for how to do it with Movable Type!

BTW, I tried the above, adding Scripty-Godesses' php to modify the defauly mtview.php that's called in my .htaccess files, and it did something odd: MT seems to over-write them to their baseline (dull) default every day.

All is not lost, I just made new 404.php (and 403.php), and directed the .htaccess to them.

Just an FYI, and a big Thanks!


I've used your LMT every day for the past 2 weeks and I am happy to say my first postings are going smoothly. Many, many thanks.
Do you know of a way to create personalized 403/404 files when running from a Windows server? Any references would be great.


p.s. I tried to trackback to one of your articles as I referenced you in a initial entry of mine..don't think it worked but I'm trying.


I'm sort of fond of this error message on my site.



I like kottke's 404 page.


Elise, my custom 404 redirect wasn't working, and I found out that my ISP, Dreamhost, by default, executes php by cgi. Without attempting to explain that, it means custom error messages won't work on Dreamhost unless you elect to run php as an Apache module, which I can't say I'd feel safe doing with my lack of expertise. I can't get ANY redirects functioning, however, which is another issue to deal with!

Post a comment

(Before posting a comment please see the Comments and Trackbacks Policy. Do you need help troubleshooting your weblog? Please post questions and requests for support at the MT Support Forums. Thanks!)

Remember Me?

(you may use HTML tags for style)

Email to a friend

Email this article to:

Your email address:

Message (optional):