You may have been working on a website, or reading an article about web development, and heard about the .htaccess file, but wondered what it was, or what, if anything, you can do with it. This tutorial will tell you the basics about .htaccess, and show you a few ways you can use it on your website.
Before we go any farther, let’s explain what the .htaccess file is. htaccess is short for Hypertext Access, and is a configuration file used by Apache-based web servers that controls the directory that it “lives” in–as well as all the subdirectories underneath that directory.
Many times, if you have installed a Content Management System (CMS), such as Drupal, Joomla or WordPress, you likely encountered the .htaccess file. You may not have even had to edit it, but it was among the files that you uploaded to your web server. BTW, that’s its name, .htaccess–it begins with a period, and ends with “htaccess.” If you edit it, you need to make sure that it stays that way, and doesn’t end up with a .txt or .html extension.
Also note that some web hosts do not allow you to edit the .htaccess file–but even on most of those hosts, you can create your own .htaccess file and upload it to specific directories, and as discussed above, it will control those directories and subdirectories below it.
Some of the features of the .htaccess file include the ability to password protect folders, ban users or allow users using IP addresses, stop directory listings, redirect users to another page or directory automatically, create and use custom error pages, change the way files with certain extensions are utilized, or even use a different file as the index file by specifying the file extension or specific file.
Custom Error Pages for Better SEO
One use of the .htaccess file is to redirect users to a custom error page depending on the specific web server error they encounter. By using a custom error page, you can present them with a list of your site’s top articles, a sitemap with links to the various areas of your site, and it can include your site’s navigation system. It can also feature a FAQ, so folks who are looking for information on your site, but can’t find it, are able to narrow down the location of that information on your site without leaving, going back to the search engine, and more than likely not returning to your site.
It’s not difficult to use the .htaccess file to redirect users to a custom error page–but to do it you’ll need to know the proper error code. The most common ones you’ll use are:
- 400 – Bad request
- 401 – Authorization Required
- 403 – Forbidden
- 404 – File Not Found
- 500 – Internal Server Error
To use .htaccess with these codes, first you’ll need to open up your favorite text editor, create a new document, and in that document, specify the error message that you’ll be redirecting like this:
ErrorDocument 404 /filenotfound.html
If you wanted to redirect users for another error, such as 500, Internal Server Error, you would do it like this (and so on):
ErrorDocument 500 /servererror.html
Then you’d just save the .htaccess file (remembering to check that it is saved just like that, without some additional extension), and upload it to your web host’s root directory (or whatever directory you are wanting to use it in).
Using a Different File as the Index File
By adding another “command” to the .htaccess file, you can use a different file as the main index file that folks see when they come to your site. In other words, when folks visit www.yoursite.com, usually they are presented with www.yoursite.com/index.html or www.yoursite.com/index.php–but often you have created a special page that you want to use as your site’s main page–and it isn’t any of the traditional pages. Or you may want to take advantage of the latest version of PHP…there are many reasons for needing to use a different file as the index file. Here’s how you would do it, with each type of file being next in line, if the others are not in the directory.
DirectoryIndex index.php3 index.php pictures.pl index.html default.htm
For instance, if there was no file named index.php3 in your directory, then the server would look for a file called index.php. If that file wasn’t present, it would look for one called pictures.pl, and so on.