URL Mapping (Friendly URLs)

Using the TUrlMapping module different URLs can be mapped into any existing Prado pages or services. This allows the application to use nice looking and friendly URLs.

The TUrlMapping module allows aributary URL path to be mapped to a particular service and page class. This module must be configured before a service is initialized, thus this module should be configured globally in the application configuration file and before any services.

The mapping format is as follows.

The PageClass set the name of class that the matched URL will be requested.

The Pattern and Parameters attribute values are regular expression patterns that determine the mapping criteria. The Pattern property takes a regular expression with parameter names enclosed between a left brace '{' and a right brace '}'. The pattens for each parameter can be set using Parametersattribute collection. For example,

The example is equivalent, using regular expression only, to \d{4})/(?P\d{2})/(?P\d+) ]]>

In the above example, the pattern contains 3 parameters named "year", "month" and "day". The pattern for these parameters are, respectively, "\d{4}" (4 digits), "\d{2}" (2 digits) and "\d+" (1 or more digits).

For example, an URL "http://example.com/index.php/articles/2006/07/21" will be matched and valid. However, "http://example.com/index.php/articles/2006/07/hello" is not valid since the "day" parameter pattern is not satisfied. In the default TUrlMappingPattern class, the pattern is matched against the path property of the URL only. For example, only the "/index.php/articles/2006/07/21" portion of the URL is considered and the rest is ignored.

The parameter values are available through the standard Request object. For example, $this->Request['year'].

The URL mapping are evaluated in order they are place and only the first mapping that matches the URL will be used. Cascaded mapping can be achieved by placing the URL mappings in particular order. For example, placing the most specific mappings first.