Login

NoDoubleSlashes middleware

Author:
simon
Posted:
January 21, 2008
Language:
Python
Version:
.96
Tags:
middleware urls
Score:
2 (after 2 ratings)

I needed this to work around a poorly configured redirecting service.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
from django.http import HttpResponseRedirect
import re

multislash_re = re.compile('/{2,}')

class NoDoubleSlashes:
    """
    Some poorly configured redirecting sites (like 123-reg) add extra slashes to 
    URLs when they are redirected, e.g. example.com/blah redirects to 
    example.net//blah . This middleware eliminates any multiple slashes from 
    incoming request paths.
    """
    def process_request(self, request):
        if '//' in request.path:
            new_path = multislash_re.sub('/', request.path)
            return HttpResponseRedirect(new_path)
        else:
            return None

More like this

  1. Ignore Csrf Middleware by coleifer 4 years, 9 months ago
  2. Hours of Operation Middleware by andrew 6 years ago
  3. GlobalRequest middleware by myq 2 years, 4 months ago
  4. middleware to capture doesnot exists exception by vbachu 1 year, 8 months ago
  5. LogViewTimeMiddleware by majgis 2 years, 8 months ago

Comments

Please login first before commenting.