As usual, there's more to it than I first imagined! To overcome the issue of routes being overwritten with an update, could there be a routes_default.py that ships with Web2py and can be overridden by routes.py in the same directory? Not super important.
I envision something like (pseudocode): In /web2py/routes.py: default_app = 'init', 'welcome' # try init first, then welcome default_controller = 'default' default_function = 'index' if exists(applications/*/routes.py) use(applications/*/routes.py) # would override default controller/function But I guess hard-coding default routing in core can protect against accidents. Domain-based routing does sound like it would be a good feature. Do I understand correctly that regex and non-regex routing cannot be used at same time? I'm guessing that's going to be a requested feature.