For 2023 (and 2024 ...) - we are now fully retired from IT training. We have made many, many friends over 25 years of teaching about Python, Tcl, Perl, PHP, Lua, Java, C and C++ - and MySQL, Linux and Solaris/SunOS too. Our training notes are now very much out of date, but due to upward compatability most of our examples remain operational and even relevant ad you are welcome to make us if them "as seen" and at your own risk.
Lisa and I (Graham) now live in what was our training centre in Melksham - happy to meet with former delegates here - but do check ahead before coming round. We are far from inactive - rather, enjoying the times that we are retired but still healthy enough in mind and body to be active!
I am also active in many other area and still look after a lot of web sites - you can find an index ((here)) |
Carrying a long URL around - looking for memorable shorts
Are you sometime envious of nice, short URLs - you want to pass on a really short URL to someone, but the structure of your site is such that the resource in question has some long string associated with it - it has to carry a lot af "context" around with it ...
There are services such as tinyurl available - or if you want more control, you can write your own. You could, for example, map
http://www.wellho.net/short/3
onto
http://www.wellho.net/resources/globalindex.html
How?
1. Use Apache mod_rewrite to map all URLs in the short directory to a PHP script:
RewriteRule ^(.*)$ index.html?shortform=$1&%{QUERY_STRING} [L]
2. Use that PHP script to perform the mapping - in this example, I have my mappings in a file but there's no reason I shouldn't use a database:
$forward = file("forward.txt");
if (preg_match('/^(\d+)/',$_REQUEST[shortform],$gotten)) {
if ($gotten[1] >= 0 and $gotten[1] < count($forward)) {
$fn = trim($forward[$gotten[1]]);
header("Location: http://www.wellho.net".$fn);
exit();
}
}
You'll note that my use of a location header causes the browser to direct.
3. Highly Recommended. Tell your robots.txt file that you do not want search engines to index the short page names; if it was index, you would be diluting your search engine placement.
Disallow: /short/
(written 2010-05-17)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles 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) [1778] Pointing all the web pages in a directory at a database - (2008-08-30) [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) [2773] Dynamically watching your web site via a PHP wrapper - (2010-05-21) [2900] Redirecting a page - silent, temporary or permanent? - (2010-08-03) [2981] How to set up short and meaningfull alternative URLs - (2010-10-02) [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)
Some other Articles
Graham Ellis - Summary of Training RecordMelksham to Calne by public transportMelksham Chamber of Commerce - Presidents report to AGMEasy - but for whom?Carrying a long URL around - looking for memorable shortsBack from a Python course in GlasgowOptional and named parameters to Python functions/methodsRunning operating system commands from your Python programPython decorators - your own, staticmethod and classmethodOur C and C++ training course are on Open Source platforms
|
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).
|