How To Set Error Pages On Your Website Using .htaccess

Setting your error pages is important, so if someone tries to access a page that does not exist, or a page they are forbidden to see, they will get a friendly error message, plus some helpful links from you. Creating custom error pages, especially for the 404 (Not Found) error is a useful way to get lost visitors back on board.

The code

All you have to do is add this code into your .htaccess file and save it! Like all file changes, it can take some time before it updates everywhere, but you can speed up the process on your devices simply by clearing your browser’s cache.

This code snippet will replace the default browser error page with your custom one. To create your own custom error page, create an web file (TXT, HTML, PHP, etc) with your custom message where your .htaccess file points to! For example, if you are using the code snippet below, create an HTML file in the "errors" folder named "404.html". When the server encounters a 404 error, it will redirect the visitor to your custom page instead of directing the browser to show a default one. Check out the entire list of error pages here.

ErrorDocument 400 https://mysite.com/errors/400/
ErrorDocument 401 https://mysite.com/errors/400.html
ErrorDocument 403 https://mysite.com/errors/403.html
ErrorDocument 404 https://mysite.comerrors/404.html
ErrorDocument 500 https://mysite.com/errors/500.html
ErrorDocument 503 https://mysite.com/errors/503.html

Remember to replace the URL with your actual site URL, pointing to your custom error page!

Note: An .htaccess file located in a sub-directory overrides any duplicate rules from previous .htaccess files. For example, if you have a .htaccess file located in the root defining a 404 and 403 error page, and another .htaccess located in the “test” folder defining only a 404 error page, any files and folders in the “test” folder will use the 404 page defined in the "test" .htaccess file, and the 403 page defined in the root .htaccess file.

Note for advanced users: According to Apache's doumentation, "If you use an ErrorDocument 4[xx] directive, then it must refer to a local document". To put in simple terms, it is recomended that you use relative links (Beginning with "/" for the root folder) in your htaccess file instead of absolute ones to prevent incorrect HTTP status messages from appearing. For example, replace "https://mysite.com/errors/400.html" with "/errors/400.html".

Advertisement

Installation

Unsure of how to install this code? It's pretty simple. A .htaccess file is called “.htaccess”, with nothing before the dot. Try finding this on your FTP software. Many systems don’t allow filenames starting with a dot (So downloading a htaccess file can be difficult at times), so that also restricts how we can create a .htaccess file. It is possible to get around these restrictions though, so here are the steps!

  1. Open your text-editing program and code your .htaccess file
  2. Once you are finished, save it as “htaccess.txt” (We will fix its name later)
  3. Upload “htaccess.txt” to your webserver and rename it to “.htaccess” (Remember that the dot is important!)

If you are still confused, or it's not working for you, check out the more detailed instruction in our Finding, Creating, and Editing a .htaccess file article.

Conclusion

Hopefully you were successful in installing this snippet, if you need help, feel free to send us a message! Check out the rest of the htaccess snippets to see what other amazing things you can do!

Advertisement

Article Author

Related Articles

Disable Image Hotlinking with .htaccess

It’s always a good idea to disable image hotlinking. Image hotlinking is when someone else displays your image on their website, but they embed it from your site. This means that visitors to this othe...

Setting the server timezone with .htaccess

Have your website all setup? Amazing! If you need to set the PHP timezone for your website (Maybe your website has a clock?) I'll show you how to do it here.

Forcing UTF-8 encoding with .htaccess

Have your website all setup? Amazing! If you need to force UTF-8 encoding across your website, here’s how you do it!

Deny Website Access To Everyone But Yourself

Have your website online, but still working on it? Want to hide it from everyone but yourself? .htaccess allows you to do that quite easily, and all you need to do this is your IP address!

Advertisement

All code and content © 2024. Contact Us to learn more.