Wiki source code of URL Architecture
Version 3.4 by Vincent Massol on 2015/04/20
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | {{box cssClass="floatinginfobox" title="**Contents**"}} | ||
2 | {{toc/}} | ||
3 | {{/box}} | ||
4 | |||
5 | This is how URLs are handled when entering an XWiki instance: | ||
6 | |||
7 | {{image reference="url-architecture-overall.png" width="650px"/}} | ||
8 | |||
9 | Specifically: | ||
10 | * When parsing an incoming URL, the Routing Filter will use a ##default## Resource Type Resolver (##ResourceTypeResolver##) component to extract the Resource Type (##ResourceType##) from the URL (the Resource Type is the type of URL pointed to, e.g. an Entity if the URL is pointing to a Document for example, a WebJar URL, a Skin URL, a REST URL, etc). In turn the ##default## Resource Type Resolver will read the XWiki configuration to see what URL Scheme is configured (through the ##url.format## configuration parameter) and will then locate a ##ResourceTypeResolver## component with a hint corresponding to the URL Scheme. It'll use it to extract the Resource Type. | ||
11 | * The Resource Reference Handler Servlet will use a ##default## Resource Reference Resolver (##ResourceReferenceResolver##) component to parse the passed URL into a ##ResourceReference## object that can then be given to a ##ResourceReferenceHandler## to perform an action. In turn the ##default## Resource Reference Resolver will read the XWiki configuration to see what URL Scheme is configured (through the ##url.format## configuration parameter) and will then locate a ##ResourceReferenceResolver## component with a hint corresponding to the URL Scheme. It'll use it to extract the Resource Reference. | ||
12 | |||
13 | For more details see the [[Resource API>>extensions:Extension.Resource API]] and the [[URL API>>extensions:Extension.URL API]] reference documentation. | ||
14 | |||
15 | = Standard URL Scheme = | ||
16 | |||
17 | This is the default URL format used by XWiki. See [[Standard URL Scheme>>Standard URL Format]]. | ||
18 | |||
19 | = Customizing URLs = | ||
20 | |||
21 | There are several solutions to customize XWiki URLs: | ||
22 | * You can tune them to some degree by modifying XWiki's configuration. The various options are described in the [[Short URL documentation>>Main.ShortURLs]]. | ||
23 | * You can rewrite both incoming URLs but also outbound URLs using a Rewrite Filter. An example is also provided in the [[Short URL documentation>>Main.ShortURLs]]. | ||
24 | * You can implement a new URL Scheme. See the [[URL API>>extensions:Extension.URL API]]. | ||
25 | * You can simply register new Resource Types or new Entity Actions. See the [[URL API>>extensions:Extension.URL API]]. | ||
26 | |||
27 | {{info}} | ||
28 | Note that using Tuckey's [[Rewrite Filter>>http://tuckey.org/urlrewrite/]] is very powerful as it also allows using dynamic rules written in Java by using the [[##<class-rule>##>>http://tuckey.org/urlrewrite/manual/4.0/index.html#class-rule]] feature. | ||
29 | {{/info}} |