I've just figured it out. I wasn't thinking right.
I realised that, instead of having each site accesing its panel through
those kind of urls (site1.dev/panel, site2.dev/panel, etc), I could use
subdomains like panel.site1.dev, panel.site2.dev, etc, and then the thing
is as easy as editing routes.py with parameter-based routing system, like
this:
# -*- coding: utf-8 -*-
routers = dict(\
BASE = dict(\
domains = {\
'site1.dev':'site1', \
'panel.site1.dev':'site1_panel', \
'site2.dev':'site2', \
'panel.site2.dev':'site2_panel', \
}, \
)\
)
El miércoles, 15 de abril de 2015, 10:00:35 (UTC-3), Lisandro escribió:
>
> I have multiple domains with multiple applications. I've gotten it to work
> using routes.py, with both approaches: parameter-based and pattern-based
> system. However, there's a couple of things that still I can't achieve.
>
>
> 1) Two applications per each domain
> In my case, each domain serves two applications: the main one, and a
> second one. I need the main one to be accessible through / url. And I need
> the second one to be accessible through an url that is different to the
> application name. To clarify:
>
> *http://site1.dev <http://site1.dev>* ----> should serve
> *site1* app
> *http://site1.dev/panel <http://site1.dev/panel>* ----> should serve
> *panel1* app
>
> *http://site2.dev <http://site2.dev>* ----> should serve
> *site2* app
> *http://site2.dev/panel <http://site2.dev/panel>* ----> should serve
> *panel2* app
>
> Notice that every domain should have the /panel url pointing to the
> corresponding application (panel1, panel2, etc).
>
>
> 2) Restrict access to specific application according the domain
> Whether is parameter-based or pattern-based system, all domains endup
> having access to all applications, for example, http://site1.dev/site2/
> is showing site2 application. But I would like that the domain
> *site1.dev* can only access the applications site1 and panel1, and
> nothing else.
>
>
>
> What have I achieved so far?
>
> ------------ routes.py using parameter-based system -----------------
> # -*- coding: utf-8 -*-
>
> routers = dict(BASE = dict(\
> domains = {\
> 'site1.dev':'site1', \
> 'site2.dev':'site2', \
> }))
>
>
> This approach is working, however I don't know how to make */panel* url
> to serve *panel1* application. Also, the problem of the point 2 remains:
> all domains can access all applications.
>
>
> ------------ routes.py using pattern-based system -----------------
> # -*- coding: utf-8 -*-
>
> routes_in = (
> ('.*http://site1.dev.* /*', '/site1'),
> ('.*http://site2.dev.* /*', '/site2'))
>
>
> In this case, in addition to the aforementioned problems, I see an error
> on every url that is not default/index. That is, http://site1.dev/ shows
> the default/index, but if I click, let's say, on the register url, the
> browser attempts to load site1.dev/site1/default/user/register but I
> receive an "invalid function" error.
>
>
> At this point, I'm a bit lost. I'm using nginx, and I asume all this could
> be done through nginx's rewrite module (however I would like to keep it
> inside web2py, for portability reasons).
> Also, I must say I've never worked with regular expressions, and in
> addition, as you can see, this scenario is a little bit different than the
> classic one-app-per-domain.
>
> So, I would really appreciate any advice or help on this.
>
> P/S: if someone feels sufficiently trained to resolve the situation,
> please contact me by private, I'm willing to spend some money to resolve
> this situation in a professional manner.
>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.