On 2/12/07, Vincent Massol <[email protected]> wrote:
Hi,
Some user (Jerome Lacoste) has commented to me that XWiki URLs are a bit too complex and should be simplified and cleaned as much as possible. I agree with him.
I also agree, and there's a task for this somewhere in my queue. Take for example: http://www.xwiki.org/xwiki/bin/view/Main/WebHome
Wouldn't it be nice is this was simplified to http://www.xwiki.org/ Main/WebHome?
Yes, but it's going to be tough. This would mean view is the action by default.
I guess we could have: http://www.xwiki.org/Main/WebHome?action="view| edit|..." with view being the default.
I (and also some search engines) don't like this. It reminds me of those websites consisting of one page only and a few params, like www.mysite.com?page=78. Anyway, for other actions except view, we can decide on whatever method to specify the action. The /xwiki/ part will be able to be removed once we fix the jira
issue about removing the hardcoding about it.
I think the hardcoded urls have been fixed, but I wouldn't recommend having the default package configured as the ROOT webapp. Instead, we should document how to make xwiki respond to the URL without /xwiki/, either by deploying the application as the ROOT webapp, or by using apache+mod_jk+URL rewriting. This is because xwiki might live in a crowded environment, where the ROOT application already exists. That leaves the /bin/ path. I'm not sure why it's there and what it's
doing. I can see some hardcoded /testbin/ in the code but I thin this is probably some leftover that we should remove (or do differently).
The /bin/ part is needed for sending requests to struts, and the /view part is needed for sending requests to the ViewAction. XWiki works fine without /view/, what needs to be changed is the URLFactory that generates URLs. Removing /bin/ is a bit trickier, since the container must know which requests to pass to struts and which requests to serve as plain documents (what's the difference between /Skins/MySkin and /skins/default/style.css ?). But for removing the /bin/ part, we can do this: - send requests for / to struts - remap existing directories to a simple directory listing / file retrieval servlet. The default one should do fine, but I don't know (didn't find) a way to specify a starting directory, since if we map it to /skin/, it will serve files not from the skin directory, but from the root directory. And if we don't want to explicitly map each directory, we could have only one action ( /files/ for example) which calls this servlet, and all the problems are solved. We just need to modify the same URLFactory. So what's the reason for /bin/?
Thanks -Vincent
So, to summarize: - /xwiki/ should be there in the default package, but we need to document how it can be removed if needed/wanted. - /bin/ can be removed - /view/ can be removed - /edit/inline/viewrev/download ... can be replaced with something else, but I think they should stay there - /files/ should be added for serving files on the local file system - The code generating URLs should be modified. Anyway, with the architectural change, a complete recheck/rewrite of the various URL modules should be performed. Sergiu -- http://purl.org/net/sergiu