[Web-SIG] handling URLs with ending slash
Manlio Perillo
manlio_perillo at libero.it
Sun Dec 14 20:28:45 CET 2008
Thomas Broyer ha scritto:
> On Sun, Dec 14, 2008 at 11:23 AM, Manlio Perillo wrote:
>> In my WSGI applications I always have an ending slash to the URLs.
>> This means that an URL without the ending slash will cause the underlying
>> resource to return 404 Not Found HTTP response.
>>
>> What is the best method to handle this, using a regex based URL dispatcher?
>
> I would add some kind of "catch-all entry" to dispatch to a "trailing
> slash redirector" WSGI app:
>
> routes.add("[^/]$", force_trailing_slash)
>
I not sure I like this.
> or eventually add a WSGI middleware to each mapped application
The URL dispatcher is a WSGI middleware, so it is ok for me to do this
in the url dispatcher.
I would like to keep the numbers of middleware to a minimun (function
calls in Python are not cheap).
> (...that need such a treatment, could be all of them) that would issue
> a redirect to the "slash-appended" URL when needed, or just pass
> through to the application otherwise:
>
> routes.add(<regexp>, force_trailing_slash(my_application))
>
Yes, that's an idea.
Note that this is a special case of an "URL normalizer" middleware.
A middleware can be used as a function decorator.
This is a point in favour to use a dedicated middleware for this.
Thanks Manlio Perillo
More information about the Web-SIG
mailing list