Update redirect middleware to try old_path without query string if we can't find a redirect for old_path with query string
pull/1692/head
Michael Cordover 2015-09-12 22:33:26 +10:00 zatwierdzone przez Karl Hobley
rodzic ca92f5ede0
commit aa80e61bef
1 zmienionych plików z 6 dodań i 2 usunięć

Wyświetl plik

@ -1,4 +1,5 @@
from django import http
from django.utils.six.moves.urllib.parse import urlparse
from wagtail.wagtailredirects import models
@ -12,13 +13,16 @@ class RedirectMiddleware(object):
# Get the path
path = models.Redirect.normalise_path(request.get_full_path())
path_without_query = urlparse(path)[2]
# Find redirect
try:
redirect = models.Redirect.get_for_site(request.site).get(old_path=path)
except models.Redirect.DoesNotExist:
# No redirect found, return the 400 page
return response
try:
redirect = models.Redirect.get_for_site(request.site).get(old_path=path_without_query)
except models.Redirect.DoesNotExist:
return response
if redirect.is_permanent:
return http.HttpResponsePermanentRedirect(redirect.link)