We've implemented the following Apache mod-rewrite rule on our server (by Thijs van der Vossen; via Simon Willison):
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.html [L]
The rule checks to see if the requested file exists if the .html extension is added, and serves it if it does. This puts us one step closer to our ideal URL design, though we haven't yet changed any permanent links. Why? We have two problems with the current solution:
We're not sure about a better solution, but we hope the fine folks at Simon's site (where we left a comment similar to this entry), or one of our readers, can help.
It took us only six days, by the way, to break our promise to stop posting about URLs indefinitely.