File diff 69725698aeae → 05bee8b3c3b9
www/conservancy/middleware.py
Show inline comments
 
from future.utils import raise_
 
from django import http
 
from django.conf import settings
 
from django.utils.cache import patch_response_headers
...
 
@@ -27,13 +28,13 @@ class ForceCanonicalHostnameMiddleware(object):
 
        if settings.APPEND_SLASH and (old_url[1][-1] != '/') and ('.' not in old_url[1].split('/')[-1]):
 
            new_url[1] = new_url[1] + '/'
 
            if settings.DEBUG and request.method == 'POST':
 
                raise RuntimeError, "You called this URL via POST, but the URL doesn't end in a slash and you have APPEND_SLASH set. Django can't redirect to the slash URL while maintaining POST data. Change your form to point to %s%s (note the trailing slash), or set APPEND_SLASH=False in your Django settings." % (new_url[0], new_url[1])
 
                raise_(RuntimeError, "You called this URL via POST, but the URL doesn't end in a slash and you have APPEND_SLASH set. Django can't redirect to the slash URL while maintaining POST data. Change your form to point to %s%s (note the trailing slash), or set APPEND_SLASH=False in your Django settings." % (new_url[0], new_url[1]))
 
        # Strip trailing index.html
 
        if new_url[1].endswith('/index.html'):
 
            new_url[1] = new_url[1][:new_url[1].rfind('index.html')]
 
        # Consult redirect table (if exists)
 
        if hasattr(settings, "REDIRECT_TABLE"):
 
            if settings.REDIRECT_TABLE.has_key(new_url[1]):
 
            if new_url[1] in settings.REDIRECT_TABLE:
 
                new_url[1] = settings.REDIRECT_TABLE[new_url[1]]
 
        if new_url != old_url:
 
            # Force canonical hostname