Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
 
For 2021 - online Python 3 training - see ((here)).

Our plans were to retire in summer 2020 and see the world, but Coronavirus has lead us into a lot of lockdown programming in Python 3 and PHP 7.
We can now offer tailored online training - small groups, real tutors - works really well for groups of 4 to 14 delegates. Anywhere in the world; course language English.

Please ask about private 'maintenance' training for Python 2, Tcl, Perl, PHP, Lua, etc.
Pointing all the web pages in a directory at a database

Do you want a web directory of pages, where each of them has its own page name (URL), but there isn't really a separate page for you to maintain - all the data is held in some sort of database on your server, and the pages are created automatically from the data as they're requested?

You can do this very easily, using the mod_rewrite Apache module on your server, and a short PHP script. Here's a "shows you how" example.

1. Create the directory in which you want to pretend the pages live.

2. In that directory, create a file called .htaccess which contains mod_rewrite instructions to pass ALL appropriate URLs to a single PHP script.

3. Create a PHP script which generates the pages from the database or other information source.

I've placed an example at http://www.wellho.net/smr/index.html (of course, there isn't REALLY a file called index.html there!). And that links on to pages like http://www.wellho.net/smr/HLD.html (which, of course, isn't really there either!).

So what do the few (two!) files that I've told you about look like.

The .htaccess file is as follows:


AddType application/x-httpd-php .html
RewriteEngine On
RewriteRule ^index\.html$ stations.php?stn=ZZZ
RewriteRule ^$ stations.php?stn=ZZZ
RewriteRule ^(...)\.html$ stations.php?stn=$1


And the "magic" PHP script reads like this:


<?php
# Set up access to the data, and get content
# mod_rewrite has supplied the page name as
# the stn element of $_REQUEST
require ("tools/datasource.inc");
$wantpage = $_REQUEST[stn];
$fill = getcontent($wantpage);
# If there's a problem with the page requested,
# send a "page not found"
if (! $fill) {
   header("HTTP/1.0 404 Not Found");
   exit();
   }
/* ----------------------------------------------- */
?>
<html>
<head>
<title><?= $fill[title] ?></title>
</head>
<body bgcolor=#FFFFCC>
<?= $fill[pagedata] ?>
<hr />
<h4>Railway Stations of Great Britain</h4>
This is a demonstration of how the Apache mod_rewrite
module can be used to serve a whole directory of web
pages through a single PHP script, with the data being
read from a database. You can learn about the techniques
used on our
<a href=http://www.wellho.net/course/ptfull.html>PHP
techniques Workshop</a><br /><br />
Copyright, Well House Consultants, <?= date("Y") ?><br />
Contact: <a href=mailto:info@wellho.net>info@wellho.net</a>
or +44 (0) 1225 708225.
</body>
</html>


There's one extra function call in here that I've not supplied as part of this example - and that's getcontent which I have referred to in an include file. You'll need to write your own code for this, depending on what your data source is and how you want to format the pages. I'm very happy to share techniques and data with you on our PHP techniques Workshop and / or PHP Programming Course, but as it's going to be a very different piece of code under the hood of each application, it's not reproduced here.

And a reminder ... in order to be able to run something like this on the web server you use, you do need to have PHP and mod_rewrite installed and accessible to you. I know that sounds obvious when I point it out, but you would be surprised .....
(written 2008-08-30)

 
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
H305 - PHP - Web server configuration
  [1938] Predictive Load Balancing - PHP and / or Java - (2008-12-13)
  [2478] How did I do THAT? - (2009-10-26)
  [2773] Dynamically watching your web site via a PHP wrapper - (2010-05-21)
  [2774] PHP - Object Oriented Design in use - (2010-05-21)
  [2981] How to set up short and meaningfull alternative URLs - (2010-10-02)
  [3143] On time - (2011-01-23)

A607 - Web Application Deployment - Apache httpd mod_rewrite
  [631] Apache httpd to Tomcat - jk v proxy - (2006-03-03)
  [755] Using different URLs to navigate around a single script - (2006-06-11)
  [934] Clustering, load balancing, mod_rewrite and mod_proxy - (2006-11-21)
  [1006] Apache httpd and Apache Tomcat together tips - (2006-12-24)
  [1009] Passing GET parameters through Apache mod_rewrite - (2006-12-27)
  [1207] Simple but effective use of mod_rewrite (Apache httpd) - (2007-05-27)
  [1376] Choosing between mod_proxy and mod_rewrite - (2007-10-02)
  [1381] Using a MySQL database to control mod_rewrite via PHP - (2007-10-06)
  [1636] What to do if the Home Page is missing - (2008-05-08)
  [1731] Apache httpd, MySQL, PHP - installation procedure - (2008-08-01)
  [1771] More HowTo diagrams - MySQL, Tomcat and Java - (2008-08-24)
  [1954] mod_rewrite for newcomers - (2008-12-20)
  [2094] If you have a spelling mistake in your URL / page name - (2009-03-21)
  [2555] Bookkeeping - (2009-12-29)
  [2728] Redirecting a home page using mod_rewrite - (2010-04-17)
  [2768] Carrying a long URL around - looking for memorable shorts - (2010-05-17)
  [2900] Redirecting a page - silent, temporary or permanent? - (2010-08-03)
  [3197] Finding and diverting image requests from rogue domains - (2011-03-08)
  [3339] Simplest ever proxy configuration? - (2011-06-28)
  [3568] Telling which ServerAlias your visitor used - useful during merging domains - (2012-01-04)
  [3753] Adding a passcode to a directory - (2012-06-05)
  [3862] Forwarding a whole domain, except for a few directories - Apache http server - (2012-09-17)

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)
  [649] Denial of Service ''attack'' - (2006-03-17)
  [662] An unhelpful error message from Apache httpd - (2006-03-30)
  [853] To list a directory under httpd on a web server, or not? - (2006-09-02)
  [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)
  [1551] Which modules are loaded in my Apache httpd - (2008-02-23)
  [1554] Online hotel reservations - Melksham, Wiltshire (near Bath) - (2008-02-24)
  [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)
  [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)
  [1939] mod_proxy_ajp and mod_proxy_balancer examples - (2008-12-13)
  [1955] How to avoid duplicating web page maintainance - (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)
  [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)
  [3955] Building up from a small PHP setup to an enterprise one - (2012-12-16)
  [4001] Helping search engines with appropriate 400 error codes - (2013-02-11)
  [4307] Identifying and clearing denial of service attacks on your Apache server - (2014-09-27)


Back to
The Rise and Rise of First Bus Fares
Previous and next
or
Horse's mouth home
Forward to
Injection Attacks - avoiding them in your PHP
Some other Articles
Calling procs in Tcl and how it compares to Perl
Reception
Server overloading - turns out to be feof in PHP
Injection Attacks - avoiding them in your PHP
Pointing all the web pages in a directory at a database
The Rise and Rise of First Bus Fares
Does fruit and veg drag on?
Easterholic
What is my real and my effective ID? [Linux]
The Longest Possible Day
4759 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 at 50 posts per page


This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - the diary and writings of Graham Ellis. Every attempt was made to provide current information at the time the page was written, but things do move forward in our business - new software releases, price changes, new techniques. Please check back via our main site for current courses, prices, versions, etc - any mention of a price in "The Horse's Mouth" cannot be taken as an offer to supply at that price.

Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2021: 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/1778_Poi ... abase.html • PAGE BUILT: Sun Oct 11 16:07:41 2020 • BUILD SYSTEM: JelliaJamb