I don't know how I missed this, but these routes are working very well and
very stable on production server.
Thanks Massimo for sharing the great tip!
On Monday, June 23, 2014 12:51:03 PM UTC+8, Massimo Di Pierro wrote:
>
> Can you post the complete correct script? thanks.
>
> On Sunday, 17 October 2010 21:03:25 UTC-5, mdipierro wrote:
>>
>> Replace your web2py/routes.py with this:
>>
>> ------------- begin routes.py-----------
>> try: config=open('routes.conf','r').read()
>> except: config=''
>> def auto_in(apps):
>> routes=[
>> ('/robots.txt','/welcome/static/robots.txt'),
>> ('/favicon.ico','/welcome/static/favicon.ico'),
>> ('/admin$a','/admin$a'),
>> ]
>> for a,b in [x.strip().split() for x in apps.split('\n') \
>> if x.strip() and not x.strip().startswith('#')]:
>> if not b.startswith('/'): b='/'+b
>> if b.endswith('/'): b=b[:-1]
>> app = b.split('/')[1]
>> routes+=[
>> ('.*:https?://(.*\.)?%s:$method /' % a,'%s' % b),
>> ('.*:https?://(.*\.)?%s:$method /static/$a' % a,'%s/static/
>> $a' % app),
>> ('.*:https?://(.*\.)?%s:$method /appadmin/$a' % a,'%s/
>> appadmin/$a' % app),
>> ('.*:https?://(.*\.)?%s:$method /$a' % a,'%s/$a' % b),
>> ]
>> return routes
>>
>> def auto_out(apps):
>> routes=[]
>> for a,b in [x.strip().split() for x in apps.split('\n') \
>> if x.strip() and not x.strip().startswith('#')]:
>> if not b.startswith('/'): b='/'+b
>> if b.endswith('/'): b=b[:-1]
>> app = b.split('/')[1]
>> routes+=[
>> ('%s/static/$a' % app,'static/$a'),
>> ('%s/appadmin/$a' % app, '/appadmin/$a'),
>> ('%s/$a' % b, '/$a'),
>> ]
>> return routes
>>
>> routes_in=auto_in(config)
>> routes_out=auto_out(config)
>> ------------------- END ---------------
>>
>> what does it do? It writes routes for you based on a simpler routing
>> configuration file called routes.conf. here is an example:
>>
>> ----- BEGIN routes.conf-------
>> 127.0.0.1 /examples/default
>> domain1.com /app1/default
>> domain2.com /app2/default
>> domain3.com /app3/default
>> ----- END ----------
>>
>> It maps a domain (the left had side) into an app and it shortens the
>> URLs for the app, by removing the listed path prefix. That means
>>
>> http://domain1.com/index will be mapped into /app1/default/index
>> http://domain2.com/index will be mapped into /app2/default/index
>>
>> It is safe in that it preserves admin, appadmin, static files,
>> favicon.ico and robots.txt.
>>
>> http://domain1.com/favicon.ico
>> http://domain1.com/robots.txt
>> http://domain1.com/admin/... /admin/...
>> http://domain1.com/appadmin/... /app1/appadmin/...
>> http://domain1.com/static/... /app1/static/...
>>
>> and vice-versa.
>>
>> It does assume one app per domain.
>>
>> I think something like this should be default since lots of people
>> find routes.py hard to work with.
>> Comments? Suggestions?
>>
>> Massimo
>
>
--
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.