From c7b49792f4de416c903965ff5d029a566b8d7ef8 Mon Sep 17 00:00:00 2001
From: Adrian Holovaty <adrian@holovaty.com>
Date: Tue, 3 Jul 2007 15:11:49 +0000
Subject: [PATCH] Fixed #4685 -- 'View on site' now works for https URLs.
 Thanks, cbrand@redback.com, treborhudson@gmail.com, Jeff Hilyard

git-svn-id: http://code.djangoproject.com/svn/django/trunk@5594 bcc190cf-cafb-0310-a4f2-bffc1f526a37
---
 django/views/defaults.py | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

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)