[Owncloud] urlrouting
Roland van Laar
roland at micite.net
Fri Mar 16 09:09:01 UTC 2012
On 03/15/2012 03:44 AM, Frank Karlitschek wrote:
> On 15.03.2012, at 00:47, Roland van Laar<roland at micite.net> wrote:
>
>> On 03/14/2012 01:49 PM, Frank Karlitschek wrote:
>>> On 14.03.2012, at 01:46, Roland van Laar<roland at micite.net> wrote:
>>>
>>>
>>>> A dispatch.php is added which becomes the starting point for all non img,ajax, css and js requests.
>>>> dispatch.php contains the starting point for urls.
>>>>
>>>> An example url patterns:
>>>> $urlPatterns = Array(
>>>> Array('url' => '^/$', 'file' => 'index.php'),
>>>> Array('url' => '^/index.php$', 'file' => 'index.php'),
>>>> Array('url' => '^/files', 'dir_include' => 'files/'),
>>>> );
>>>>
>>>> It's possible to include urls.php files in other directories via the
>>>> 'dir_include' => dir_name syntax in the Array.
>>>>
>>>> The code: https://gitorious.org/~rvanlaar/owncloud/rvanlaars-owncloud-urlrouting
>>>>
>>>> What do you think?
>>>> Is this something that has the potential to be included in owncloud?
>>> I´m really sorry to say but I think that your proposal is not suitable for ownCloud at the moment.
>>> I hate to say this to a new contributor but I hope you understand the reason.
>> I do understand it. One of the reasons I published the code now is to get feedback.
>> In the ideal case the dispatch code would be a class OC_route in lib.
>> That way the code would be cleaner and tie in with the OwnClouds class loader.
>>
>> How can this code become suitable for OwnCloud?
>> And is urlrouting something that could be incorporated in OwnCloud?
> I think urlrouting is a good idea in general. The challenge here is that ownCloud should run on different webservers and with minimal external dependencies.
> If it´s possible to implement this in a way that we don´t loose existing users than I´m fine with it. But I doubt that this is technically possible to be honest.
>
;-).
I have found a way to implement it in a way it's possible to use url
routing and to have it work for others.
In dispatch.php useURLRouting is defined.
To allow for a correct base/lib.php path for the require_once the
following coded is use:
if (defined('useURLRouting')){
require_once 'lib/base.php';
} else {
require_once '../lib/base.php';
}
Have a look at the code:
https://www.gitorious.org/~rvanlaar/owncloud/rvanlaars-owncloud-urlrouting.
The main files are dispatch.php, lib/route.php and a couple of urls.php
files.
A new install of owncloud with apache will set up the correct .htaccess
file.
There are some changes:
- A 404 is returned when a url is not matched
- some code is moved to OC_Route.
Regards,
Roland van Laar
More information about the Owncloud
mailing list