+1 On Tuesday, May 6, 2014 10:20:53 AM UTC-4, Carlos Fillol Sendra wrote: > > > Imagine that I have an application called 'myapp' running in my local > web2py server, and I include this in routes.py to manage HTTP errors using > a custom controller (/myapp/portal/error_page): > > routes_onerror = [ > ('myapp/*', '/myapp/portal/error_page'), > ] > > > Then, when somebody access to myapp and a HTTP exception is raised, web2py > framework catches it and redirects execution to my custom controller. > Perfect! That is what I was looking for! :) > > This works great most of the time, but I have observed that execution > doesn't go through my custom controller when an "invalid request" error is > produced (HTTP 400 error code). This happens for example, when I use a > controller or a function name with special chars like '-'. Ex: > http://127.0.0.1:8000/myapp/not-existing-controller-with-especial-chars > > Debugging function regex_url_in in gluon/rewrite.py I have realised that > request.application is None when an "invalid request" error is produced. > Then try_redirect_on_error doesn't know which is the application that > produces the problem and is not able to redirect execution to the custom > controller configured in routes.py. > > I wonder if it would have sense to infer request.application from an > invalid url to allow custom controller redirection when an invalid request > error is produced. > > # Maybe adding something like this in gluon.rewrite.regex_url_in? > # ... > match = regex_url.match(path) > if not match: > > # Added > application_match = re.search('^/(?P<a>\w+)/.*$', path) > request.application = application_match and application_match. > group('a') or None > > invalid_url(routes) > request.raw_args = (match.group('s') or '') > if request.raw_args.startswith('/'): > request.raw_args = request.raw_args[1:] > # ... > > Thank you very much for web2py :) >
-- 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.