diff --git a/django/contrib/redirects/middleware.py b/django/contrib/redirects/middleware.py
index 03c9d97..9053c64 100644
--- a/django/contrib/redirects/middleware.py
+++ b/django/contrib/redirects/middleware.py
@@ -8,6 +8,11 @@ from django import http
 
 
 class RedirectFallbackMiddleware(object):
+
+    # Defined as class-level attributes to be subclassing-friendly.
+    response_gone_class = http.HttpResponseGone
+    response_redirect_class = http.HttpResponsePermanentRedirect
+
     def __init__(self):
         if 'django.contrib.sites' not in settings.INSTALLED_APPS:
             raise ImproperlyConfigured(
@@ -16,8 +21,9 @@ class RedirectFallbackMiddleware(object):
             )
 
     def process_response(self, request, response):
+        # No need to check for a redirect for non-404 responses.
         if response.status_code != 404:
-            return response # No need to check for a redirect for non-404 responses.
+            return response
 
         full_path = request.get_full_path()
         current_site = get_current_site(request)
@@ -37,8 +43,8 @@ class RedirectFallbackMiddleware(object):
                 pass
         if r is not None:
             if r.new_path == '':
-                return http.HttpResponseGone()
-            return http.HttpResponsePermanentRedirect(r.new_path)
+                return self.response_gone_class()
+            return self.response_redirect_class(r.new_path)
 
         # No redirect was found. Return the response.
         return response
