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', >>> ), >>> ) >>> >>> -- > > > > -- > > > --