Login

NoDoubleSlashes middleware

Author:
simon
Posted:
January 21, 2008
Language:
Python
Version:
.96
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. Template tag - list punctuation for a list of items by shapiromatron 3 months, 2 weeks ago
  2. JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 3 months, 3 weeks ago
  3. Serializer factory with Django Rest Framework by julio 10 months, 2 weeks ago
  4. Image compression before saving the new model / work with JPG, PNG by Schleidens 11 months, 1 week ago
  5. Help text hyperlinks by sa2812 12 months ago

Comments

Please login first before commenting.