The shtml extension


As you've probably noticed, most of the pages have the .shtml extension, instead of the more familiar .html extension.

Why is this? With the Apache web server, which I use, .shtml is the default extension for a page with server-side includes. A server-side include allows me to dynamically insert different content on some of the pages when they're served. There are a number of other technologies to do this, but I consider them inferior for what I want:

That said, why am I generating content dynamically on most pages in the first place? Mostly for convenience. The footer of each page is dynamically generated. This allows me to automatically provide the last-modified date (which would almost certainly be inaccurate if I had to do it manually), and set the copyright year correctly. Including one copy of the footer on all pages also allows me to keep the layout consistent, and reduces the number of places I have to edit if something changes. The curious can view the source to my footer.

The changing fortune on my main page is also dynamically generated with a server-side include.

Why not reconfigure Apache so that it enables server-side includes even on stock .html documents, then? I once did this, and it worked fine. However, I later moved my web pages to a different machine, and had to do it again. I decided to change my site to match Apache, instead of the other way around, in anticipation of the former approach ultimately requiring less effort.

If you don't like it, at least be happy that I don't have URLs like http://www.consistent.org/server4321/getapage.asp?pagenumber=32143&ipaddress=1.2.3.4&username=joebloe&sekritusertrackinginfo=4b43be0b000a34


back