Standard URL Format

Version 25.1 by Thomas Mortagne on 2008/12/10
Warning: For security reasons, the document is displayed in restricted mode as it is not the current version. There may be differences and errors due to this.

URLs resolution

Failed to execute the [velocity] macro. Cause: [The execution of the [velocity] script macro is not allowed in [xwiki:Documentation.DevGuide.Architecture.URL Architecture.Standard URL Format.WebHome]. Check the rights of its last author or the parameters if it's rendered from another script.]. Click on this message for details.

In a single instance of XWiki you have many sections and the URLs need to reflect all that. This documentation details the way URLs are parsed by XWiki and what means each part of it.



By default "http" is used when generating an url in XWiki.

You can set "secure" parameter to true in a wiki descriptor to generate urls with "https" in place of "http". See How to edit wiki descriptor.


  • The first thing XWiki do to find the right wiki the URL is pointing to is by trying to find in the list of wiki descriptors. Comparing with the content of field server in objects of class XWiki.XWikiServerClass
  • If no descriptor can be found:
    • if the host is an IP (,, etc.) XWiki goes to main wiki
    • if the first part of the host name (what is before the first point) is "www" XWiki goes to main wiki
    • if the first part of the host name match a wiki identifier XWiki goes to this wiki

To configure the list of domain names alias to access a wiki, you have to go to the wiki's descriptor. See How to edit wiki descriptor.

Application context (OPTIONAL)

See ShortURLs for more details on how to remove this part of the url.

It's what the web container (jetty, tomcat, glassfish, etc.) use to find XWiki in all the web applications it contains. To remove it mainly depends on the possibilities and configuration of your web container.

Servlet mapping name (OPTIONAL)

See ShortURLs for more details on how to remove this part of the url.

This is used by the container to call the right servlet.

It can be:

  • /bin/: this calls the Struts servlet which will calls the right action for the following part of the URL.
  • /wiki/wikialias: call the same servlet but will be use to determine the subwiki to access if xwiki.virtiual.usepath is enabled in xwiki.cfg. Notes that you can change the "wiki" part with anything else using xwiki.virtual.usepath.servletpath and by modifying web.xml to reflect the new Struts action name.
    • XWiki tries to match a wiki descriptor with the provided wikialias like it was a domain name
    • then if it can't find any wiki descriptor it search for it with wikialias as the wiki name
  • /xmlrpc/: call xmlrpc servlet. See XMLRPC for more details.
  • /webdav/: call webdav servlet. See WebDAV for more details.

Struts action (OPTIONAL)

See ShortURLs more more details on how to remove this part of the url.

When the servlet mapping name is bin or the value of xwiki.virtual.usepath.servletpath, XWiki use "action" identifiers to determine what is the goal of the user when going to a page.

For example if the action is "edit", XWiki will print an editor the user use to modify a page content but if the "view" action is used XWiki will execute the page content to print/render the content.


All XWiki page are located in what is called a "space". You have only one level of space but you can indicate a "parent space" for a space.


The page is what contains wiki contents and objects/classes and attachments.


This part indicate the attachment you want to download from a particular page.

See Attachments for more details about attachments.

Query string

Actions can use URL parameters to modify there action depending of there value.

For example you can make a velocity script that print the content of this value with:

The value of the parameter is: $request.param1

if you have a parameter "param1=Hello World" the result will be

The value of the parameter is: Hello World

See Scripting for more details about scripting.

Get Connected