There larger your site is, the more you need to consider constructing it with Server Side Includes (SSIs for short). SSIs allow you to modify your navigation system quickly and easily. If your site is a dozen pages or so, don't bother with SSIs. But when you get to 20 pages or more, they're well worth the learning pain they generate. SSIs are text files on your server that are called whenever a visitor clicks on your URL. Here's how they work.
Most business pages have a lot of material that is the same on every page: left-side menu, top graphic, bottom text, etc. With SSIs you can make each of these sections into a Server Side Include file to insert like "boilerplate" text into your Web page. The code to left-side menu into your page would be something like:
<!--#include virtual="/ssi/wmt-side.ssi"-->
This command inserts about 50 lines of HTML. I use SSIs to call the left-side menu, top graphic, a line under a page title, a banner ad, and the text and image map, copyright information, etc. at the bottom of the page. To change the left-side menu, I don't have to touch the Web pages, only the file I've named wmta-side.ssi.
Tips
Here are a few technical tips about SSIs:
You don't need to use the traditional *.shtm and *.shtml filename extensions. You can ask your ISP to turn on SSIs for your entire site. Or you may be able to do it yourself without his permission by inserting a file named .htaccess in your root directory containing such lines as:
SSIs place an increased burden on the Web server, since now it must "parse" or carefully scan each *.htm Web page in your site to find and deliver its component elements in order to display the Web page. Thus, ISPs don't really like SSIs.
If you use FrontPage 98, you might try the "Include Page Component" which does the same thing as SSIs.
Learning Resources
SSIs are thing a beauty, but not for beginners. Do not try this at home. (Okay, go ahead and try it, but when you start pulling your hair out in tufts, don't say I didn't warn you.) The documentation available on Server Side Includes is poor. Yes, all the elements are there, but they seem pretty cryptic when you don't know what they mean. You'll just have to do some trial and error to learn this, though you'll find some help with these resources:
Laura Lemay, Teach Yourself Web Publishing with HTML 4.0 in 14 Days (Second Professional Reference Edition, Sams.Net, 1997), in the chapter on "Web Server Hints, Tricks, and Tips." Incidentally, this is my pick for the best HTML reference book. Click here to purchase it at discount from Amazon.com
NCSA Httpd Tutorial: Server Side Includes (SSI) http://hoohoo.ncsa.uiuc.edu/docs/tutorials/includes.html
Ben Laurie and Peter Laurie, "Apache: Server-side Includes,"Web Review, October 10, 1997, excerpted from Apache: The Definitive Guide (O'Reilly, 1997) http://webreview.com/wr/pub/97/10/10/bookshelf/index.html
SSIs are very necessary for large sites, even though SSIs are a pain to learn and implement, and are an increased burden on the server. They are very well worth the pain the next time it comes to redesign your site's navigation system.
Please note: I am unable to field questions about implementing SSIs. I'm sorry. However, I'll offer a few tips:
Begin by testing a file that contains just one or two of these commands before you set up an entire system.
If your Web page comes up with the message "[an error occurred while processing this directive]" that indicates that the server is scanning your page for SSI commands, but something is wrong with the command within your Web page. If you see this error message, your .htaccess files is probably working okay.
Look for picky little things such as a beginning foward slash in front of the virtual command /ssi/filename.txt. Also, some servers or some CGI programs running on SSI pages may require you to remove any spaces between the actual command and the <!-- --> outer "envelope."
Make sure you reload/refresh the Web page with your browser after making these tiny changes. Otherwise, you may have fixed it and not know it.
Troubleshooting SSIs is frustrating at best. Remember, we can't field questions about this seemingly mystical procedure. I wish you the best! For further help consult Mark West's Server Side Includes Tutorial.