Free Web Site Hosting

There is, in fact, such a thing as a free lunch. At least when it comes to finding a company to host your web site. It used to be that the only way to get free hosting was to put up with having obnoxious ads all over your site, including pop-up ads. As this is a real turn-off to your visitors, it was a real problem if you couldn't afford a regular hosting plan.

However, disk space, memory, and bandwidth have become so inexpensive that some companies are providing free hosting with no ads at all. What's the catch? There are limits on the amount of disk space and bandwidth you get. But those limits are far higher than what ad-supported hosting provided just a few years ago.

They simply hope that as your site becomes more successful that you'll want to upgrade to a paid hosting service with them. They also display lots of advertising on the administration pages, but only you will see those.
Many of this new breed of free hosting providers even include many of the extras that you would expect to pay extra for, such as databases. Of course, they may find out that it doesn't quite work out the way they hope and close up shop. That is a risk you should consider.

In my research, I found two free services that seem to offer everything that most people could possibly hope for. I compare them feature for feature in a table below. Both sites allow you to host your own ads if you wish and neither display their own ads on your site. Both sites have multiple tiers of paid hosting services, starting at $1.99 per month. If you need more disk space or bandwidth, it will likely to be less expensive to upgrade to one of the paid plans rather than adding extras to the free plan. Note that in most cases, the paid plans offer more features as well as more space and bandwidth. The asterisks indicate items that change if you upgrade to a paid hosting plan. The data is current as of March 2008.
Feature NameFreeHostiaAwardspace
Monthly bandwidth5G*5G*
SSLYesNo*
File Management and Uploading
File ManagerYesYes
FTP accounts11
FrontPage server extensionsYesYes
Disk space250M*200M*
Maximum file sizen/a500K*
Password protected filesYesNo
Prohibited file typesNone.htacl, .htaclu, .avi, .mov, .mp2, .mp3, .mpeg, .ram, .asf, .quota, .vbs, .shs, .scr, .exe, .cmd, .torrent, .wmv, .wma, .rm, .zip
Custom 404 pageYesNo*
Hotlinking allowedYesNo
Email
POP email accounts3*5*
SMTPNo*No*
IMAPYesNo*
Web mailYesYes
Spam protectionSpamAssassinNone*
Catch-allYesNo*
AutoresponderYesNo*
Email ForwardingYesNo*
Domains / URLs
Free URL choicesyourname.freehostia.comyourname.awardspace.com, yourname.awardspace.biz, yourname.awardspace.us, yourname.awardspace.info, yourname.awardspace.co.uk
Domain name registration (.com or .net)$9.99$14.95
Domains1*2*
Sub-domains10*5*
Custom MX, A, SPF recordsMX, A, SPFMX, A*
Custom WHOISYesNo
Databases
MySQL databases1*1*
Database space10M10M
Scripting
Automatic script installer35 scriptsNo*
PHPYes4.41
PERLYesYes
CGIn/aYes
PythonYesNo
SSIYesNo*
horizontal bar

How to Set Up A Custom 404 Error Page

If your web host allows you to create your own custom 404 File Not Found page, you should definitely do so. The default page served by your web hosting provider is likely very plain, does not match the design of your site, and doesn't help your visitors find what they are looking for. When presented with a generic 404 error page, most users will leave your site. If you don't want to lose the visitor, use the custom 404 page to steer them in the right direction.

Your web host has to provide you with the ability to use a custom 404 error page. You will usually find mention of this somewhere in their documentation or on the hosting control panel if they provide one. If you are hosted on a server running Apache, look for a feature to modify a file named ".htaccess". You may just need to provide a file of a specific name in the root directory of your web site.

Creating Your Custom Page

Your custom 404 File Not Found page should have the same basic design as the rest of the pages on your site, including header, footer, background, navigation links, etc. If you have a site search feature, make sure you provide a search box so users can find what they were looking for. Be sure to include a link to your site's home page, or the main page for the directory if it is for a specific directory. You also need to decide where to put the html file. To keep things simple, you can put it in the root directory, but you may want to put it in a scripts or cgi-bin directory. Be sure to add an exclusion to your robots.txt file if you are putting it in a directory that is not excluded.

You can put a feedback form on the page to allow your visitors to inform you of the broken link. They may not bother to provide the information, but it never hurts to give them the option. If you can pre-populate the form with the page they came from (document.referrer if you use Javascript), that will help you figure out whether they used a bad link on your site (or someone else's) or just mistyped your URL.
If you are getting decent information from your server logs or a service like Google Analytics, you will be able to get the information that way and won't need the form.

Testing Your Custom Page

You can test your page locally until it looks the way you want, but you need to test it after uploading it (and the .htaccess file, if needed) to the server. Then test it by typing a URL that you know does not exist to be sure your custom page is displayed and that the links on it work properly. This is especially critical if you are placing the file in a directory other than the one containing your regular pages, since your links may be using relative paths that assume the page is in the root directory.

Set up Apache .htaccess file

If you are on an Apache server, you may need to create or update a file named .htaccess. The .htaccess file is what Apache web servers use to allow you to fine-tune your web server configurations at a directory level. It is just a plain text file that you can edit with Notepad or the equivalent. You need to add the following line, using the name of your custom 404 document:

ErrorDocument 404 /custom404.html

This directs Apache to serve up the document you named whenever it cannot find the file it needs anywhere in your site. If you want a different custom 404 page for different directories, just create a .htaccess file in each directory. They will override the .htaccess file in the root for any files requested in that directory tree. In these subdirectory .htaccess files, do not use the slash at the beginning of the name for your custom page. Be very sure that the file name is correct, otherwise you could end up with an endless loop.

Properly designed and configured, a custom 404 page should keep you from losing visitors because of a bad link or poor typing.