The parameter based system was designed to make such common scenarios much 
easier. If all you want to do is remove the app name and the index 
function, your entire routes.py would just be:

routers = dict(
    BASE = dict(
        default_application = 'myapp',
        default_controller = 'default',
        default_function = 'index'
        functions = ['list', 'of', 'functions', 'in', 'default', 
'controller']
    )
)

Note, that last line (listing the functions) is optional, but needed in 
order to resolve ambiguities with URL args.

Anthony

On Tuesday, January 21, 2014 2:02:43 AM UTC-5, Joe Barnhart wrote:
>
> Oh man... Now you're gonna make me learn a whole new system!?!?  
>
> The short answer is, I've been too lazy to look at it yet.  I'm just 
> trying to get rid of the application name everywhere because it seems so... 
> redundant!  My dns name already has the name of the site, then it gets 
> repeated in the application.  For. Every. Single. Page. In. The. Site.
>
> I'll look into the parameter based thing.  I'm on a biz trip and looking 
> at 14 hours in the air anyway...  Plenty of time to learn a new trick...
>
> -- Joe
>
>
> On Monday, January 20, 2014 10:09:20 AM UTC-8, Anthony wrote:
>>
>> Seems like this would be a lot easier using the parameter-based rewrite 
>> system.
>>
>> Anthony
>>
>> On Sunday, January 19, 2014 4:01:46 PM UTC-5, Joe Barnhart wrote:
>>>
>>> I'm trying to do the simplest routes.py possible.  I just want to get 
>>> rid of the application name -- EVERYWHERE.  In addition, I'd like my main 
>>> page (index.html) to just appear without any "default" controller in the 
>>> URL.  The problem is, the auth login dialog always includes my application 
>>> name in the "next=" field of the login form.  Nothing I do seems to affect 
>>> it.
>>>
>>> My routes.py is pretty simple...  It's the default example routes.py 
>>> with the following additions:
>>>
>>>
>>> default_application = 'my_app_name'     # ordinarily set in base 
>>> routes.py
>>> default_controller = 'default'  # ordinarily set in app-specific 
>>> routes.py
>>> default_function = 'index'      # ordinarily set in app-specific 
>>> routes.py
>>>
>>>
>>> BASE = ''  # optonal prefix for incoming URLs
>>>
>>> routes_in = (
>>>     # do not reroute admin unless you want to disable it
>>>     (BASE + '/admin', '/admin/default/index'),
>>>     (BASE + '/admin/$anything', '/admin/$anything'),
>>>     # do not reroute appadmin unless you want to disable it
>>>     (BASE + '/$app/appadmin', '/$app/appadmin/index'),
>>>     (BASE + '/$app/appadmin/$anything', '/$app/appadmin/$anything'),
>>>     #(BASE + '/appadmin', '/%s/appadmin'%default_application),
>>>     # do not reroute static files
>>>     (BASE + '/$app/static/$anything', '/$app/static/$anything'),
>>>     # reroute favicon and robots, use exable for lack of better choice
>>>     ('/favicon.ico', '/examples/static/favicon.ico'),
>>>     ('/robots.txt', '/examples/static/robots.txt'),
>>>     # route default app
>>>     (BASE + '/index.html', 
>>> '/%s/%s/index.html'%(default_application,default_controller)),
>>>     (BASE + '/about.html', 
>>> '/%s/%s/about.html'%(default_application,default_controller)),
>>>     (BASE + '/$anything', '/%s/$anything'%default_application),
>>>     # do other stuff
>>>     ((r'.*http://otherdomain.com.* (?P<any>.*)', r'/app/ctr\g<any>')),
>>>     # remove the BASE prefix
>>>     (BASE + '/$anything', '/$anything'),
>>> )
>>>
>>>
>>> routes_out = (
>>>     # do not reroute admin unless you want to disable it
>>>     ('/admin/$anything', BASE + '/admin/$anything'),
>>>     # do not reroute appadmin unless you want to disable it
>>>     ('/$app/appadmin/$anything', BASE + '/$app/appadmin/$anything'),
>>>     # do not reroute static files
>>>     ('/$app/static/$anything', BASE + '/$app/static/$anything'),
>>>     # do other stuff
>>>     (r'.*http://otherdomain.com.* /app/ctr(?P<any>.*)', r'\g<any>'),
>>>     (r'/app(?P<any>.*)', r'\g<any>'),
>>>     # map default application
>>>     ('/%s/%s/index.html'%(default_application,default_controller), 
>>> '/index.html'),
>>>     ('/%s/%s/about.html'%(default_application,default_controller), 
>>> '/about.html'),
>>>     ('/%s/$anything'%default_application, '/$anything'),
>>>     # restore the BASE prefix
>>>     ('/$anything', BASE + '/$anything'),
>>> )
>>>
>>>
>>> This seems like a pretty simple application of routes.py, and I would 
>>> expect it to be a popular use for it.  I don't know anyone who wants their 
>>> root page to be festooned with the application name when it is constant 
>>> across every page in the site.
>>>
>>> Warm regards,
>>>
>>> Joe
>>>
>>>
>>>

-- 
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/groups/opt_out.

Reply via email to