XWiki is a great open source Atlassian Confluence replacement (some argue it is better, I leave it to your assessment). We use XWiki a lot at Tenesys to document internal projects, and create documentation of clients' platforms. We run XWiki in Tomcat application server, behind nginx proxy.
We use great XWiki's plugin, called FAQ, which can be used to create, well FAQs. The problem we had
was that sometimes people (me especially) created FAQ entries with a /
in the name, which resulted
in XWiki creating a slug with /
character, which is used to delimit page hierarchy in XWIki.
Basically, you wanted to write How to install Debian/Ubuntu package
and you ended up with two
pages: How to install Debian
and a subpage Ubuntu package
. You can't easily delete the 'slashed'
FAQ page because by default the last one is deleted only.
The solution to this problems is twofold. First of all, you need to tell Tomcat to allow passing
encoded slash (%2F
) oto XWiki.
Add to -Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
to CATALINA_OPTS
. You can
either do it via catalina.sh
or catalina.opts
.
Second of all, you need to make sure that your nginx proxy directive is bare, i.e. does not contain URI part, see relevant stack question here. Basically you want your proxy_pass
to look like that:
location / {
proxy_pass http://backend;
}
... not like that.
location / {
proxy_pass http://backend/xwiki;
}
I spent quite a lot of time before I discovered that nginx caveat. Hope it helps somebody too.