Rewrite engine

Source: Wikipedia, the free encyclopedia.

In web applications, a rewrite engine is a software component that performs

slugs) are used to provide shorter and more relevant-looking links to web pages. The technique adds a layer of abstraction
between the files used to generate a web page and the URL that is presented to the outside world.

Usage

Web sites with

subdirectory hierarchy. For example, the URL to a wiki
page with title Rewrite_engine might be:

http://example.com/w/index.php?title=Rewrite_engine

but can be rewritten as:

http://example.com/wiki/Rewrite_engine

A blog might have a URL that encodes the dates of each entry:

http://www.example.com/Blog/Posts.php?Year=2006&Month=12&Day=19

It can be altered like this:

http://www.example.com/Blog/2006/12/19/

which also allows the user to change the URL to see all postings available in December, simply by removing the text encoding the day '19', as though navigating "up" a directory:

http://www.example.com/Blog/2006/12/

A site can pass specialized terms from the URL to its

location bar
:

http://example.com/search term

will be

HTTP request
. The server could rewrite this to:

http://example.com/search.php?q=search%20term

Benefits and drawbacks

There are several benefits to using URL rewriting:[1]

  • The links are "cleaner" and more descriptive, improving their "friendliness" to both users and search engines.
  • They prevent undesired "inline linking", which can waste bandwidth.
  • The site can continue to use the same URLs even if the underlying technology used to serve them is changed (for example, switching to a new
    blogging engine
    ).

There can, however be drawbacks as well; if a user wants to modify a URL to retrieve new data, URL rewriting may hinder the construction of custom queries due to the lack of named variables. For example, it may be difficult to determine the date from the following format:

http://www.example.com/Blog/06/04/02/

In this case, the original query string was more useful, since the query variables indicated month and day:

http://www.example.com/Blog/Posts.php?Year=06&Month=04&Day=02

Web frameworks

Many web frameworks include URL rewriting, either directly or through extension modules.

From a software development perspective, URL rewriting can aid in code modularization and control flow,[12] making it a useful feature of modern web frameworks.

See also

Notes

  1. filesystem entities (i.e. files and directories); certain environments, such as many HTTP application server
    platforms, make this irrelevant.
  2. ^ mod_rewrite documentation
  3. ^ URL Rewrite extension for Microsoft IIS
  4. ^ "Rails Routing from the Outside In". "Ruby on Rails. Retrieved 25 April 2014.
  5. ^ Django URLconf
  6. ^ clean urls in Stripes 1.5
  7. ^ Guides - Mojolicious guide to the galaxy. Mojolicious. Retrieved on 2013-09-08.
  8. ^ Docs ModRewrite - Lighttpd - lighty labs. Redmine.lighttpd.net. Retrieved on 2013-09-08.
  9. ^ "ngx_http_rewrite_module - rewrite". nginx.org. Retrieved 25 December 2014.
  10. ^ Murenin, Constantine A. (18 February 2013). "A dynamic web-site written wholly in nginx.conf? Introducing mdoc.su!". [email protected] (Mailing list). Retrieved 24 December 2014.
  11. ^ URL TOOLKIT part of Hiawatha webserver's manual
  12. ^ "Clean URL". DocForge. Retrieved 25 April 2014.

External links