On Apr 2, 2012, at 2:57 AM, Joseph.Piron wrote:
> For one of my applications, I use web2py as a rest backend for a extjs
> application. So, in order to redirect to this app, I have
> def index():
> """
> example action using the internationalization operator T and flash
> rendered by views/default/index.html or views/generic.html
> """
> redirect(URL(a=request.application, c='static', f='index.html'))
>
>
> The problem is I want to have only the server name in the url so I added a
> routes.py with
> routers = dict(
> BASE = dict(
> default_application = "webmoni",
> applications = ['webmoni','admin'],
> controllers = 'DEFAULT'
> )
> )
>
> but it seems that the redirect neglects the default_application removal
> attempt from the url.
> How can I achieve this ? (not to have
> https://webmoni/webmoni/static/index.html as displayed url)
The static 'controller' is a special case. It's not mapped by default, to make
it easier for external (server) rewrites. Add map_static = True to your router
to accomplish what you're after. (Also, 'static' can never be the default
controller.)
>
> Moreover, I did try the domains option but there were no way for me to get
> access to the admin app?
> Could anyone give an example with port 80 to app and 443 to admin using
> domains option ?
domains = {
"domain.com:80" : "app",
"domain.com:443" : "admin",
},
However, the stock /app/appadmin does things like this:
URL('admin', 'default', 'design', args=[request.application])
...and that will cause you problems, because it won't generate a secure access.
What ought to work in this example would be the following, in all cases in
which URL refers to admin (I haven't tested this):
URL('admin', 'default', 'design', args=[request.application],
scheme='https')