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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.