On Feb 17, 2010, at 9:57 AM, Thadeus Burgess wrote: > Thank you everyone! Finally. > > Wikus van de Merew your a genius. > > The following routes does it, and if you try to access > example.com/dashboard you get a 404.
This is a good solution in your case because it's easy to specify the other controller(s) explicitly. It occurred to me that an alternative solution, if there were many controllers, would be to send this case to a separate controller, which could then redirect to the appropriate dashboard.example.com URL. > > The only change I needed to make was to wildcard the GET/POST at the end. > > routes_in = ( > > ('.*:/favicon.ico', '/init/static/favicon.ico'), > ('.*:/robots.txt', '/init/static/robots.txt'), > ('.*:https?://dashboard\.example\.com:.* /(.*)', > r'/init/dashboard/\2'), > > ('^/admin(?P<any>.*)', '/admin\g<any>'), > ('^/appadmin(?P<any>.*)', '/init/appadmin\g<any>'), > ('^/(?P<any>.*)', '/init/public/\g<any>'), > > ) > > routes_out = ( > ('/init/dashboard/(?P<any>.*)', '/\g<any>'), > ) > > This makes me extremely happy (because it makes my boss happy) > > -Thadeus > > > > > > On Wed, Feb 17, 2010 at 10:33 AM, Jonathan Lundell <jlund...@pobox.com> wrote: >> On Feb 16, 2010, at 10:38 PM, Thadeus Burgess wrote: >> >>> example.com/controllerA/function1 -> /init/controllerA/function1 >>> example.com/controllerA/function2 -> /init/controllerA/function2 >>> example.com/controllerB/function1 -> /init/controllerB/function1 >>> example.com/controllerB/function2 -> /init/controllerB/function2 >>> example.com/$anything -> /init/defaultController/$anything >>> dashboard.example.com/function1 -> /init/dashboard/function1 >>> dashboard.example.com/function2 -> /init/dashboard/function2 >>> dashboard.example.com/$anything -> /init/dashboard/$anything >>> >>> Any of the above URLS should work. >>> >>> You should NOT be able to do the following, dashboard controller >>> should only be accessed by this single subdomain. >>> >>> !example.com/init/dashboard/function1 >>> >>> I don't care if I have to declare every controller in routes... I >>> would have to do that in django/werkzeug/ruby/php/etc. I'm ready for >>> web2py to get out of my way and let me do what I want to do. >>> >>> When I said rewrite hostname I ment to redirect a single hostname to a >>> single web2py controller. This is the same concept as example1.com >>> goes to app1 and example2.com goes to app2, but on the controller >>> level instead of app level! (because the controllers share models) >>> >>> Hopefully this gets my point across. >> >> Would you repost the routes.py code that you think should accomplish the >> above? I think it should be doable. >> >> I think what you want in routes_in is: >> >> 1. handle any other apps explicitly (admin, for example) >> 2. if the subdomain is dashboard, prefix init/dashboard >> 3. if the controller is now dashboard, it's an error >> 4. everything else gets passed through >> >> Then in routes_out: >> >> 1. strip init/dashboard >> 2. strip init >> >> The only problem I see is routes_in step 3 above: you don't want to allow an >> access of the form example.com/dashboard/function, because it's ambiguous on >> output. If that's not a problem though.... -- You received this message because you are subscribed to the Google Groups "web2py-users" group. To post to this group, send email to web...@googlegroups.com. To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/web2py?hl=en.