How do you move from a web site with a single static page to a web site with a thousand pages (URLs) without multiplying your maintainance work by a thousand? Such is the critical importance of being able to do this that there are many schemes available - many solutions - and virtually every site that's more than a single shop front window uses them. Here are some of the techniques:
Scripted Content Generation Where a program that's run whenever [part of] the web site is updated regenerates the individual static .html files.
Site Management Programs Where a static .html page is generated by a program that a content provider submits.
Style Sheets Where the look and feel that's been developed for one page is carried across many others.
Include Files Where a page is held on the server in "HTML++" - that's html with extra bits such as SSI, PHP, ASP, JSP, Mason, Rails which are interpreted by the server before it's passed to the browser allowing a single piece of content to be maintained for insertion in many pages
URL rewriting Where a whole number of
apparently different static .html pages are actually served by a single page or program that produces a response based in part on the name of the page to be served.
Under the
Apache httpd web server, URL rewriting is performed by mod_rewrite. See
mod_rewrite for newcomers for further details of this (that's really the second part of this article)
(written 2008-12-20, updated 2008-12-21)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
G999 - Well House Consultants - Keynote [164] Well House Consultants - review of 2004 - (2004-12-31)
[225] 10 years and counting - (2005-02-23)
[295] Pricing strategy - simple and fair - (2005-04-29)
[360] Spring turns to Summer - (2005-06-26)
[419] Most popular courses - (2005-08-19)
[428] Swindon - Chippenham - Melksham - Trowbridge - Westbury train service - (2005-08-29)
[452] Is enough enough? - (2005-09-27)
[464] Technical Loneliness - (2005-10-14)
[549] 2005 - Come as a student, leave as a friend - (2005-12-31)
[626] Not just a pretty face to answer the phone. - (2006-02-26)
[695] In the hospitality business - (2006-04-23)
[774] Bed and Breakfast, or Hotel? - (2006-06-22)
[845] Course scheduling and Geekmas - are they traditions yet? - (2006-08-26)
[890] Open - (2006-10-09)
[898] Courses at Well House Manor - (2006-10-19)
[929] Presenting Melksham - for a weekend away in Wiltshire - (2006-11-17)
[1079] Wilts and Berks - two conference / training rooms in Melksham - (2007-02-14)
[1161] A contrast in room rates and facilities - (2007-04-25)
[1245] Ensuring that our tutor answers YOUR questions - (2007-06-25)
[1317] 2008 course schedule - Perl, Python, PHP, Linux, Java Deployment, Ruby and more - (2007-08-23)
[1319] Customer feedback - lifeblood of a business - (2007-08-25)
[1414] What we teach - expained for the non-technical - (2007-10-28)
[1481] The Christmas Letter - (2007-12-22)
[1492] Well House Consultants Training and Hotel - 2008 news - (2008-01-01)
[1555] Advanced Python, Perl, PHP and Tcl training courses / classes - (2008-02-25)
[1615] PHP training courses every month - (2008-04-18)
[1676] A warm welcome for visitors from the USA - (2008-06-14)
[1748] Hotel room prices - Melksham, Wiltshire - (2008-08-11)
[1773] The Longest Possible Day - (2008-08-26)
[1857] November and December Public Course Schedule - (2008-10-27)
[1859] Wiltshire at dawn - the tourist trail - (2008-10-29)
[1929] 2009 - Hotel, Meeting, Training Course prices - (2008-12-07)
[1975] Well House Manor Hotel - on plan for 2009 business guests - (2009-01-03)
[2144] Looking for a career change - Physician to Web Site Designer - (2009-04-28)
[2216] Past Delegate Offer - Summer Holiday / Weekend Break - (2009-06-03)
[2228] Where do I start when writing a program? - (2009-06-11)
[2326] Learn a new programming language this summer. - (2009-08-06)
[2384] Looking ahead to the Autumn season of training and accommodation - (2009-08-28)
[2483] Clustering on Tomcat - (2009-10-30)
[2537] Faster network, but not faster browsing until ... - (2009-12-14)
[3164] Brown - or Mrs Sally Brown, accountant from Whitstable? - (2011-02-10)
[4588] What teach you in a week stays with you for a decade - (2015-11-29)
G902 - Well House Consultants - Web site techniques, utility and visibility [23] Skills and responsibilities - (2004-08-22)
[32] Web design platoon - (2004-08-29)
[98] No more 'Error 404' pages. Something better. - (2004-10-24)
[109] URLs - a service and not a hurdle - (2004-11-04)
[117] A case of case - (2004-11-14)
[142] Colour for access - (2004-12-06)
[165] Implementing an effective site search engine - (2005-01-01)
[173] Data Mining - (2005-01-09)
[179] The hunt for unique words - (2005-01-16)
[182] Your personal Google ranking - (2005-01-19)
[197] Allow for peak traffic on your web site - (2005-02-01)
[202] Searching for numbers - (2005-02-04)
[222] Who are all these visitors? - (2005-02-20)
[259] Responding to spam - (2005-03-27)
[261] Putting a form online - (2005-03-29)
[268] Information request forms, cleaning up spam - (2005-04-05)
[274] Our most popular resources - (2005-04-10)
[276] An apology to Mr Boneparte - (2005-04-11)
[278] Cover all the options - (2005-04-13)
[284] The Iconish language - (2005-04-19)
[288] Colour blindness for web developers - (2005-04-22)
[311] Growth pains - (2005-05-14)
[314] What language is this written in? - (2005-05-17)
[320] Ordnance Survey - using a 'Get a map' - (2005-05-22)
[322] More maps - (2005-05-23)
[347] Frightening and from-friend viruses and spams - (2005-06-14)
[348] Graveyard pages - (2005-06-15)
[369] CMS - the minefield of Choices - (2005-07-05)
[376] What brings people to my web site? - (2005-07-13)
[414] Form Madness - (2005-08-14)
[492] New Navigation Aid - Launch of My Wellho - (2005-11-11)
[510] Dynamic Web presence - next generation web site - (2005-11-29)
[528] Getting favicon to work - avoiding common pitfalls - (2005-12-14)
[533] Bigger Box Campaign - (2005-12-18)
[649] Denial of Service ''attack'' - (2006-03-17)
[658] Keeping the visitors happy and browsing - (2006-03-26)
[681] Mirroring a dynamic site - (2006-04-12)
[718] Protecting images from theft - (2006-05-12)
[732] Where is a web site visitor browsing from - (2006-05-24)
[757] Horse and Python training - (2006-06-12)
[767] Finding the language preference of a web site visitor - (2006-06-18)
[800] Effective web campaign? - (2006-07-12)
[893] Visibility - (2006-10-14)
[916] Driving customers away - (2006-11-07)
[976] Santa at the station - (2006-12-09)
[994] Training on Cascading Style Sheets - (2006-12-17)
[1015] Search engine placement - long term strategy and success - (2006-12-30)
[1029] Our search engine placement is dropping. - (2007-01-11)
[1055] Above the fold - (2007-01-28)
[1104] Drawing dynamic graphs in PHP - (2007-03-09)
[1177] Sorting out for a site map - (2007-05-05)
[1184] Finding resources - some pointers - (2007-05-13)
[1186] Two new pages / sites - (2007-05-14)
[1198] From Web to Web 2 - (2007-05-21)
[1207] Simple but effective use of mod_rewrite (Apache httpd) - (2007-05-27)
[1212] What brought YOU to our web site? - (2007-06-01)
[1237] What proportion of our web traffic is robots? - (2007-06-19)
[1297] Stuffing content into a web page - easy maintainance - (2007-08-09)
[1437] Above the fold with First Great Western - (2007-11-19)
[1494] A time to update pictures - (2008-01-03)
[1505] Script to present commonly used images - PHP - (2008-01-13)
[1506] Ongoing Image Copyright Issues, PHP and MySQL solutions - (2008-01-14)
[1513] Perl, PHP or Python? No - Perl AND PHP AND Python! - (2008-01-20)
[1534] Where in the world / country is my visitor from? - (2008-02-07)
[1541] Colour, Composition or Content - (2008-02-16)
[1554] Online hotel reservations - Melksham, Wiltshire (near Bath) - (2008-02-24)
[1610] PHP course dot co, dot uk - (2008-04-13)
[1630] To provide external links, or not? - (2008-05-04)
[1634] Kiss and Book - (2008-05-07)
[1653] How do Google Ads work? - (2008-05-25)
[1711] Rapid growth leads to server move - (2008-07-17)
[1747] Who is watching you? - (2008-08-10)
[1756] Ever had One of THOSE mornings? - (2008-08-16)
[1793] Which country does a search engine think you are located in? - (2008-09-11)
[1797] I have been working hard but I do not expect you noticed - (2008-09-14)
[1833] Web Bloopers - good form design - avoiding pitfalls - (2008-10-11)
[1856] A few of my favourite things - (2008-10-26)
[1888] Find the link - (2008-11-16)
[1961] Making our things easier to find - (2008-12-26)
[1970] Plagarism - who is copying my pages? - (2009-01-02)
[1982] Cooking bodies and URLs - (2009-01-08)
[2056] Web Site Loading - experiences and some solutions shared - (2009-02-26)
[2065] Static mirroring through HTTrack, wget and others - (2009-03-03)
[2225] How important is a front page ranking on a search engine? - (2009-06-09)
[2332] Formation, des langages Open Source - (2009-08-09)
[2333] Formaci[83][c2]ón, de los lenguajes de c[83][c2]ódigo abierto - (2009-08-09)
[2334] Formazione, Open Source computer lingue - (2009-08-09)
[2335] Ausbildung, die Open-Source-Sprachen - (2009-08-09)
[2336] Forma[83][c2]ç[83][c2]ão, Open Source computador l[83][c2]ínguas - (2009-08-09)
[2337] Opleiding, Open Source computertalen - (2009-08-09)
[2338] Uddannelse, Open Source computer sprog - (2009-08-09)
[2339] Oppl[83][c2]æring, Open Source datamaskinen spr[83][c2]åk - (2009-08-09)
[2340] ldning, Open Source dator spr[83][c2]åk - (2009-08-09)
[2341] Koulutus, Open Source tietokone kielill[83][c2]ä - (2009-08-09)
[2389] Writing with our customers words - (2009-09-01)
[2410] Removal of technical resources from this site - (2009-09-19)
[2519] Status Page / breaks of service in early December - (2009-11-30)
[2532] Analysing Google arrivals by country of origin - (2009-12-10)
[2552] Web site traffic - real users, or just noise? - (2009-12-26)
[2569] How to run a successful online poll / petition / survey / consultation - (2010-01-10)
[2668] Is it worth it? - (2010-03-09)
[2981] How to set up short and meaningfull alternative URLs - (2010-10-02)
[3022] Retaining web site visitors - reducing the one page wonders - (2010-10-31)
[3087] Making the most of critical emails - reading behind the scene - (2010-12-16)
[3149] Looking back at www.wellho.net - (2011-01-28)
[3197] Finding and diverting image requests from rogue domains - (2011-03-08)
[3367] Google +1 - what is it? - (2011-07-22)
[3426] Automed web site testing scripted in Ruby using watir-webdriver - (2011-09-09)
[3491] Who is knocking at your web site door? Are you well set up to deal with allcomers? - (2011-10-21)
[3532] Sharing the user experience - designing a form with the customer in mind - (2011-11-29)
[3554] Learning more about our web site - and learning how to learn about yours - (2011-12-17)
[3563] How big is a web page these days? Does the size of your pages matter? - (2011-12-26)
[3589] Promoting a single one of your domains on the search engines - (2012-01-22)
[3623] Some TestWise examples - helping use Ruby code to check your web site operation - (2012-02-24)
[3734] QR codes with marketing logos embedded - (2012-05-16)
[3744] Short Web Addresses for Melksham - (2012-05-30)
[3745] Legal change - You need to obtain user consent if you use cookies on your website - (2012-06-01)
[3776] Some traps it's so easy to fall into in designing your web site - (2012-06-23)
[3896] An email marathon - (2012-10-15)
[3974] TV show appearance - how does it effect your web site? - (2013-01-13)
[4001] Helping search engines with appropriate 400 error codes - (2013-02-11)
[4076] Web site - fully back! - (2013-04-29)
[4115] More or less back - what happened to our server the other day - (2013-06-14)
[4136] How do I post automatically from a PHP script to my Twitter account? - (2013-07-10)
[4239] Facebook marketing - early experiences - (2014-01-19)
[4376] Well House Consultants, Well House Manor, First Great Western Coffee shop, TransWilts / 2014 web site reports - (2015-01-01)
[4401] Selecting RECENT and POPULAR news and trends for your web site users - (2015-01-19)
[4474] Effect on external factors on traffic to our web sites - an update - (2015-04-26)
[4492] Almost so wrong, but perhaps it's right for some? - (2015-05-11)
A603 - Web Application Deployment - Further httpd Configuration [345] Spotting a denial of service attack - (2005-06-12)
[466] Separating 'per instance' data from binaries and web sites - (2005-10-16)
[526] Apache httpd - serving web documents from different directories - (2005-12-12)
[550] 2006 - Making business a pleasure - (2006-01-01)
[631] Apache httpd to Tomcat - jk v proxy - (2006-03-03)
[662] An unhelpful error message from Apache httpd - (2006-03-30)
[755] Using different URLs to navigate around a single script - (2006-06-11)
[853] To list a directory under httpd on a web server, or not? - (2006-09-02)
[934] Clustering, load balancing, mod_rewrite and mod_proxy - (2006-11-21)
[1009] Passing GET parameters through Apache mod_rewrite - (2006-12-27)
[1080] httpd.conf or .htaccess? - (2007-02-14)
[1121] Sharing the load with Apache httpd and perhaps Tomcat - (2007-03-29)
[1351] Compressing web pages sent out from server. Is it worth it? - (2007-09-14)
[1355] .php or .html extension? Morally Static Pages - (2007-09-17)
[1377] Load Balancing with Apache mod_jk (httpd/Tomcat) - (2007-10-02)
[1381] Using a MySQL database to control mod_rewrite via PHP - (2007-10-06)
[1551] Which modules are loaded in my Apache httpd - (2008-02-23)
[1564] Default file (MiMe types) for Apache httpd and Apache Tomcat - (2008-03-04)
[1566] Strange behaviour of web directory requests without a trailing slash - (2008-03-06)
[1619] User and Group settings for Apache httpd web server - (2008-04-22)
[1636] What to do if the Home Page is missing - (2008-05-08)
[1707] Configuring Apache httpd - (2008-07-12)
[1762] WEB-INF (Tomcat) and .htaccess (httpd) - (2008-08-20)
[1767] mod_proxy and mod_proxy_ajp - httpd - (2008-08-22)
[1778] Pointing all the web pages in a directory at a database - (2008-08-30)
[1939] mod_proxy_ajp and mod_proxy_balancer examples - (2008-12-13)
[1954] mod_rewrite for newcomers - (2008-12-20)
[1974] Moving a directory on your web site - (2009-01-03)
[2060] Database connection Pooling, SSL, and command line deployment - httpd and Tomcat - (2009-03-01)
[2272] Monitoring and loading tools for testing Apache Tomcat - (2009-07-07)
[2478] How did I do THAT? - (2009-10-26)
[2900] Redirecting a page - silent, temporary or permanent? - (2010-08-03)
[3133] An image from a website that occasionally comes out as hyroglyphics - (2011-01-14)
[3449] Apache Internal Dummy Connection - what is it and what should I do with it? - (2011-09-19)
[3635] Parse error: parse error, unexpected T_STRING on brand new web site - why? - (2012-03-03)
[3862] Forwarding a whole domain, except for a few directories - Apache http server - (2012-09-17)
[3955] Building up from a small PHP setup to an enterprise one - (2012-12-16)
[4307] Identifying and clearing denial of service attacks on your Apache server - (2014-09-27)
Some other Articles
-PHP - Parse error: syntax error, unexpected $end ...Why are cooks bad tempered?Images for ChristmasHow to avoid duplicating web page maintainanceEnd of Training, 2008Small PrintWhisky - Setting and reading cookies from PerlCopyright of Training Notes and Web Site