Wouldn't it be nice is URLs were shorter? Well - there are ways of making them shorter these days and you'll find them on networking sites like Twitter ... http://bit.ly/d7t8ID or http://bbc.in/XTQ8V . But where such URLs gain in brevity, they loose in comprehensibility.
But it's very easy to provide brief URLs that *are* meaningful too - and to do so on your own site if you have a short domain name (not www.whydidiregistersomethingthislong.co.uk) - we've done it, and let me show you how.
I wanted a quick link to our hotel booking page at https://lightning.he.net/~wellho/hotel/reservation.php - I wanted to go there from
wellho.info/booking (yes, do try that link - it will work!).
Here's how I did it:
1. On the server for the domain that's got the short URL, I added the following to the .htaccess file in the DocumentRoot (the server's running Apache httpd with mod_rewrite and AllowOverrides On)
RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)$ http://www.wellho.net/short/$1 [L]
That redirects any URLs in the root directory that are just strings of letters and digits to a more structured directory at a longer URL within our main domain.
2. In the "short" directory on the main domain server, I've also got a rewrite line which sends the received name to a PHP script (requirements on this machine - httpd, mod_rewrite, Overrides allowed and PHP):
RewriteRule ^([a-zA-Z0-9]+)$ divert.php?shrtfrm=$1&%{QUERY_STRING}
3. The PHP script looks up the code in $_REQUEST[shrtfrm] from a file or database, and sends out Location header telling the browser where to go:
header("Location: $fn");
And
it is nice! .... I have a whole lot of meaningful short links I can give to people, and I can use them as a switchboard too - so that if we come up with a new map there isn't a huge amount of extra work to do to tell people where it is.
Let's see if you can guess what you'll get if you follow the following links (which will open in a new window):
wellho.info/weather
wellho.info/map
wellho.info/course
wellho.info/coursebooking
wellho.info/hotel
wellho.info/hotelbooking
wellho.info/askus
wellho.info/coffeeshop
wellho.info/chamber
wellho.info/carnival
I'll confess to having done a bit more too .... If you put in a number, it will take you straight to that article number in "The Horse's Mouth", and if you put in a word that happens to be the name of a page on our wiki, it'll take you to a page there.
wellho.info/2202
wellho.info/2894
wellho.info/727
wellho.info/beanacre
wellho.info/coatewater
wellho.info/westwoods
wellho.info/phonein
wellho.info/walkin
And - yes - if you enter something that's not on our site you'll get an index of all the special links:
wellho.info/alpaca
The images used to illustrate this article all come from pages that are short-linked above. Can you find them? (written 2010-10-02)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
H312 - PHP - Tips and Techniques [789] Hot answers in PHP - (2006-07-02)
[917] Syntax checking in PHP - (2006-11-07)
[1010] Dates, times, clickable diarys in PHP - (2006-12-28)
[1270] PHP Standalone - keyboard to screen - (2007-07-18)
[1649] Easy conversion - image formats, currencies and distances - (2008-05-21)
[1667] Checking server performance for PHP generated pages - (2008-06-06)
[1684] Two PHP include files to make easy web site indexing and navigation - (2008-06-21)
[1958] PHP - Parse error: syntax error, unexpected $end ... - (2008-12-23)
[1983] Keeping PHP code in database and running it - (2009-01-09)
[2025] Injection Attack if register_globals in on - PHP - (2009-02-04)
[2274] PHP preg functions - examples and comparision - (2009-07-08)
[2478] How did I do THAT? - (2009-10-26)
[4074] A comment on comments in PHP - (2013-04-28)
[4310] Problem ... I want to print a series of numbered forms - (2014-10-05)
[4319] PHP - some quick fixes if scripts have issues, and how to use our support - (2014-11-19)
[4426] FileMaker Day to Unix Time conversion - (2015-02-15)
[4621] The power of scripting - (2016-01-12)
H305 - PHP - Web server configuration [1778] Pointing all the web pages in a directory at a database - (2008-08-30)
[1938] Predictive Load Balancing - PHP and / or Java - (2008-12-13)
[2773] Dynamically watching your web site via a PHP wrapper - (2010-05-21)
[2774] PHP - Object Oriented Design in use - (2010-05-21)
[3143] On time - (2011-01-23)
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)
[1955] How to avoid duplicating web page maintainance - (2008-12-20)
[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)
[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)
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)
[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)
[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)
Some other Articles
Right place, right seasonCustomer Review - Hotel Room, MelkshamStrong arm tactics in the bus industry? Poor result for the customer!Travel, Transport and Tourism - A vision for Melksham, 2026How to set up short and meaningfull alternative URLsRuby - examples of regular expressions, inheritance and polymorphism Ruby - yield; parallel routinesChristmas 2010 - Well House Manor, Melksham, HotelWhat is a factory method and why use one? - Example in RubyCreating, extending, traversing and combining Ruby arrays