XWiki支持多租户,这意味着你的实例可以有几个wikis。此页面可以帮助你了解如何配置XWiki来访问正确的wiki。了解XWiki的URL格式,以便更好地了解当前的URL scheme。
XWiki支持2种URL模式:
- 基于路径的wiki访问
- 基于域的wiki访问
下面文档是基于xwiki5.0及其以后版本
基于路径的wiki访问
如果没改过XWiki配置,则是默认模式(xwiki.cfg文件的xwiki.virtual.usepath属性)
此模式的URL格式为: http://host/xwiki/wiki/wikialias/view/Space/Page
URL的重要组成部分,是/wiki/wikialias
- wiki: 这只是一个固定值用于标识URL为基于路径。如果你想修改这个值,可以在xwiki.cfg文件修改xwiki.virtual.usepath.servletpath属性
不要忘记设置相对应xwiki.authentication.logoutpage属性。
- wikialias: 这是XWiki用于查找wiki描述(见下文更多关于wiki描述符)。算法如下:
- 首先XWiki试图找到包含XWikiServerClass对象带有server属性具有wikialias的值的页面。如果找到一个,那么它通过从页面名称提取wiki的名字。wiki描述页面必须命名格式为 XWikiServer<wikiid>。例如,如果存在名为 XWikiServerTest页面,它包含XWikiServerClass对象server属性的值为somewiki,则URL为http://host/xwiki/wiki/somewiki/...指向testwiki(提取页面小写名称)。
- 如果没有wiki描述符,则XWiki试图找到一个名为XWikiServer<wikialias>的包含XWikiServerClass对象的页面。如果找到则目标Wiki是wikialias。
- 如果没有找到这样的页面则取决于配置属性命名xwiki.virtual.failOnWikiDoesNotExist(位于xwiki.cfg文件)的值。如果该值为0(这是默认值),那么提供服务的wiki是main Wiki。如果该值是1,那么将显示一个错误,指出wiki不存在。
需要注意的是,如果没有在URL中找到/wiki/wikialias,则xwiki继续使用下面的基于域的算法寻找
基于域的wiki访问
这是XWiki 3.3之前的默认模式。XWiki 3.3发布之后,基于路径的模式设置为默认模式,因为它更容易使用。
此模式的URL格式:http://domain/xwiki/bin/view/Space/Page。这表示哪个一个wiki被设定为目标,是这个URL的domain部分。
XWiki使用以下算法:
- 首先,它试图找到包含XWikiServerClass对象带有server属性拥有domain值的页面。 如果找到,则通过页面名字提取wiki名称。wiki描述页面必须命名格式为 XWikiServer<wikiid>。例如,如果存在名为XWikiServerTest页面,它包含了XWikiServerClass对象server属性值为somewiki,则URL http://somewiki/xwiki/bin/...指向testwiki(提取页面小写名称)。
- 如果没有wiki描述符可以坐落,那么XWiki会进行一些检查:
- 如果domain值是一个IP(如127.0.0.1,85.65.12.36,等)或为localhost,那么XWiki认为是main Wiki
- 如果没有,那么XWiki尝试拆分域名和提取“.”(点)字符之前的第一个部分。例如,如果你有一个prefix.domain.com的域名进行提取前缀,则会执行一些额外的检查:
- 如果前缀的值是www并且没有wiki别名名为www(就是说,没有哪个页面包含XWikiServerClass对象并且server属性为www),则XWiki认为你的目标为main Wiki。
- 如果没有,那么XWiki试图找到一个名为XWikiServer<prefix>并且具有XWikiServerClass对象的页面。如果找到则目标Wiki是prefix。
- 如果没有找到这样的页面则取决于名为 xwiki.virtual.failOnWikiDoesNotExist(位于 xwiki.cfg 文件)的配置属性的值。如果值为 0(默认值)则wiki为main wiki,如果值为1则显示一个错误,指出wiki不存在。
注意,在这种模式下,你需要配置你的DNS或修改操作系统/etc/hosts#文件