diff --git a/django/views/defaults.py b/django/views/defaults.py index 701aebabd6..b4dfc1e1eb 100644 --- a/django/views/defaults.py +++ b/django/views/defaults.py @@ -21,7 +21,7 @@ def shortcut(request, content_type_id, object_id): # if necessary. # If the object actually defines a domain, we're done. - if absurl.startswith('http://'): + if absurl.startswith('http://') or absurl.startswith('https://'): return http.HttpResponseRedirect(absurl) object_domain = None @@ -61,7 +61,8 @@ def shortcut(request, content_type_id, object_id): # If all that malarkey found an object domain, use it; otherwise fall back # to whatever get_absolute_url() returned. if object_domain is not None: - return http.HttpResponseRedirect('http://%s%s' % (object_domain, absurl)) + protocol = request.is_secure() and 'https' or 'http' + return http.HttpResponseRedirect('%s://%s%s' % (protocol, object_domain, absurl)) else: return http.HttpResponseRedirect(absurl)