The new site takes advantage of Apache’s mod_rewrite. In short, mod_rewrite, allows you to magically “translate” one URL into another without having to redirect the browser.
How could this possibly be useful to programmers? Well it has to do with a little site called Google. Most search engines have complex algorithms judging how valid a URL is. This includees both length of the URL and whether the URL is dynamic or not (URL’s containing GET arguments such as & = and ?). Many web applications use such arguments to dynamically build content, including JAX.
A good example is the default URL for a perm-a-link in my blog:
/jax/index.php/blog/eventHandler=view/entryID=888888888
There are two problems with this URL:
- It’s extremely long.
- It contains an equal sign, which may keep it from being indexed.
Enter mod_rewrite. The module, through the use of regular expressions, manipulates URL strings. This allows me to turn /jax/index.php/blog/eventHandler=view/entryID=888888888
into /888888888/some-title-text
. Below are a few examples.
# Put this in your virtual host definition or a .htaccess file # Turn the module on RewriteEngine on # The first part of the rule rewrites /YYYY/MM into the dynamic #URL the second part tells mod_rewrite what the "real" URL is RewriteRule ^/([0-9]{4})/([0-9]{2})$ /view.php?year=$1&month=$2 # The first part of the rule rewrites /888888888/some-title-text # into the longer dynamic URL RewriteRule ^/([0-9]{9})/(.*) /view.php?entryID=$1 # This rewrites requests to / (the main index of the page) to # my real index, which is stored lower in the document tree RewriteRule ^/$ /jax/index.php/blog
There you have it. Apache’s mod_rewrite makes life a lot easier and should make your site loved much more by many search engines.
Yahoo loves them for searches. You need to change the links in your RSS feed too since a lot of SEs are trying to index just feeds 🙂
Me likey.