I modified the route.py as you suggested:

routers = dict(
    BASE=dict(
        default_application='social',
        functions = ['index', 'profile', 'user'],
    )
)

Yet the URL continues to present at: http://brian.com/default/profile#_=_

On Sat, Jun 23, 2012 at 12:15 AM, Jonathan Lundell <jlund...@pobox.com> wrote:
> On Jun 22, 2012, at 7:06 AM, Alec Taylor wrote:
>> Just tried that, it's still prepending the URL with "default".
>>
>> E.g.: http://localhost/default/profile rather than http://localhost/profile
>
> If you want the router to omit the default controller when you specify a 
> non-default function, then you need to list your functions.
>
> routers = dict(
>   BASE = dict(
>       default_application = 'social',
>       functions = ['index', 'profile', ... ],
>   ),
> )
>
> The functions list must be a complete list of the callable functions in the 
> default controller.
>
> Otherwise, the router could ambiguously interpret http://localhost/profile as 
> /myapp/default/index/profile.
>
> You can extend this functionality by defining functions as a dict of lists, 
> where the dict keys are controller names. That allows dropping of functions 
> in non-default controllers. The hazard of doing this is that the function 
> list(s) really, really must be complete.
>
>
>>
>> On Fri, Jun 22, 2012 at 10:57 PM, Jonathan Lundell <jlund...@pobox.com> 
>> wrote:
>>> On Jun 22, 2012, at 3:08 AM, Alec Taylor wrote:
>>>>
>>>> My web2py\routes.py:
>>>>
>>>> routers = dict( BASE=dict( default_application='social',
>>>> default_controller='default', default_function='index' ) )
>>>> myapps = ['social']
>>>> routes_in = [
>>>>  ('/admin/$anything', '/admin/$anything'),
>>>> ]
>>>> for app in myapps:
>>>>    routes_in += [ ('/%s/static/$anything' % app,
>>>> '/%s/static/$anything' % app), ('/%s/appadmin/$anything' % app,
>>>> '/%s/appadmin/$anything' % app), ('/%s/$anything' % app,
>>>> '/%s/default/$anything' % app) ]
>>>> routes_out = [(b, a) for (a, b) in routes_in]
>>>>
>>>> It correctly defaults the landing page to the 'social' app, but it
>>>> isn't removing 'default' from my URLs.
>>>>
>>>> (I got the above from
>>>> https://groups.google.com/forum/#!topic/web2py/QU71v2-GFaM)
>>>>
>>>> How can I remove 'default' from my URLs?
>>>>
>>>> Thanks for all suggestions,
>>>
>>> Don't mix the two routers. In particular, don't define routers if you're 
>>> going to define routes_in/out.
>>>
>>> All you need is:
>>>
>>> routers = dict(
>>>    BASE = dict(
>>>        default_application = 'social',
>>>    ),
>>> )
>>>
>>> --
>
>
>
> --
>
>
>

-- 



Reply via email to