Thanks for the tips Jonathan, I am going to try it out. This could be good for some multilingual stuff I think.
Cheers, Chris On Jun 19, 12:36 pm, Jonathan Lundell <jlund...@pobox.com> wrote: > On Jun 19, 2010, at 9:11 AM, Christopher Steel wrote: > > > I use a link from init to my app as well. Works great for me. You just > > need to set up your app name. I have not tried the routes way as of > > yet. > > Here's something I've been using. I've added comments that I hope are clear. > > My intent here is to have a default app, controller and function: > /myapp/default/index in this case (note that default/index is also web2py's > default), while allowing other known apps. I want to strip as much of > /myapp/default/index as possible outbound, and of course reattach them > inbound. > > BTW, it's useful to think of this backwards. That is, write routes_out first, > and then write routes_in to handle everything you do in routes_out, along > with special cases (files in static/, say).. > > It's a little subtle. > > routes_in = ( > > # route "domain.com" or "domain.com/" to myapp (instead of init) > # > ('/?', '/myapp/'), > > # recognize all the apps in the system, with or without trailing arguments > # > ('/(?P<app>(admin|examples|welcome|myapp))','/\g<app>/'), > ('/(?P<app>(admin|examples|welcome|myapp))/(?P<any>.*)','/\g<app>/\g<any>'), > > # route bare requests for favicon or robots.txt to myapp/static > # > ('/favicon.ico', '/myapp/static/img/favicon.ico'), > ('/robots.txt', '/myapp/static/robots.txt'), > > # recognize myapp's controllers > # > ('/(?P<ctlr>(sysadmin|appadmin|css|static|init\\b))(?P<any>.*)', > '/myapp/\g<ctlr>\g<any>'), > > # treat anything else as a function in /myapp/default > # > ('/(?P<any>.*)','/myapp/default/\g<any>'), > ) > > routes_out = ( > > # recognize outgoing known apps and don't strip them > # > ('/(?P<app>(admin|examples|welcome))/(?P<any>.*)','/\g<app>/\g<any>'), > > # handle myapp's default controller with no fcn, etc > # > ('/myapp(/default)?/?', '/'), > > # handle myapp's default controller and default fcn, etc > # > ('/myapp(/default(/index)?)?/?', '/'), > > # handle myapp's default controller with other fcns, etc > # > ('/myapp/default/(?P<any>.*)','/\g<any>'), > > # handle myapp's other controllers > # > ('/myapp/(?P<any>.*)','/\g<any>'), > )