1. I want my website to have
different URLs for each of my content pages so that users can easily bookmark pages, pass them on to friends and contacts easily and with confidence, and search engines can register and handle each as its own distinct page
but
2. I want most of the pages on my website to be provided by the
same script, so that I can maintain a single piece of code that brings in variable content as required.
Requirements (1) and (2) may appear to conflict at first, but in reality they don't. Multiple URLs can be mapped onto a single script using Apache httpd's mod_rewrite (
guide,
reference). And that way, you can get the best of both worlds.
Mod_rewrite is very powerful; we use it in many places on our web site and on client web sites, and the casual website visitor hasn't a clue that it's in use. Because it's very powerful and flexible, though, the documentation can be a bit longwinded to wade through and it's often hard to see the wood for the trees. So here's an example:
In the .htaccess file in a directory called /boutique
RewriteEngine On
RewriteRule ^([^/]*)/([^.]*)\.html$ demo.php?andy=$1&graham=$2
RewriteRule ^([^/]*)\.html$ demo.php?toplevel=$1
Any top level .html requests are mapped to the script with a "toplevel" parameter as if one box on a form had been completed (that's the second rule). And .html requests that appear to be in subdirectories are mapped to the same script with parameters called "andy" and "graham" as if each of those elements had been entered into a form.
I've put up a live script on
our save the train site under a subdirectory called boutique. Try out the following URLs:
http://www.savethetrain.org.uk/boutique/clothing.html
http://www.savethetrain.org.uk/boutique/clothing/trousers.html
http://www.savethetrain.org.uk/boutique/clothing/hats.html
The script source code is available here, the .htaccess file source is here, and training is available here
(written 2006-06-11 07:07:49)
Associated topics are indexed under
A603 - Web Application Deployment - Further httpd Configuration
Some other Articles
Watch your Google profile
Very good for woodlice
Horse and Python training
Seeing the bricks for the trees
Using different URLs to navigate around a single script
tar, jar, war, ear, sar files
Python 3000 - the next generation
Over zealous police activity?
Want to be a technical trainer in the UK?
Almost everyone loses