This is a neat solution Anthony (actually, it was my original idea for solving this). however I seem to be getting the same error: *invalid function (default/tcgata)*.
Forgive me, is this code in the root-level routes.py? or a routes.py in * applications/shortener*? Should anything else be in routes.py? S On Thursday, March 29, 2012 6:40:09 PM UTC+1, Anthony wrote: > > routes_in = ( >> (r'^/?$', r'/app_name/default/index'), >> (r'^/(?P<url>[^/]*)/?$', >> r'/app_name/default/index/\g<url>'), >> ) >> >> >> in your root-level routes.py The drawback is that you will lose access to >> all other apps (including admin) but that can be a good thing for public >> deployments. >> > > You can catch the other apps by adding route patterns that match them > before your catch-all pattern (the patterns are processed in order, and the > first match is used). Anyway, using the parametric router and specifying > the url-shortening app as the default app might be simpler: > > routers = dict( > BASE = dict( > default_application = 'shortener', > default_controller = 'default', > default_function = 'index', > ), > ) > > Then http://myapp.com/tcgata will get routed to > http://myapp.com/shortener/default/index/tcgata, and "tcgata" will be > available to the index() function in request.args(0). > > Anthony >