Python Heroku仍然重定向到https
几天前,我从我们的网站上删除了SSL,并且遇到了很多问题。然而,其中大多数问题已经解决,只有一个问题存在:一个被重定向到https,即使您输入http 在Heroku中,我删除了SSL应用程序以及PointDNS中指向osaka-4635.herokusl.com的指针 目前,我在PointDNS中有以下内容:Python Heroku仍然重定向到https,python,django,ssl,heroku,https,Python,Django,Ssl,Heroku,Https,几天前,我从我们的网站上删除了SSL,并且遇到了很多问题。然而,其中大多数问题已经解决,只有一个问题存在:一个被重定向到https,即使您输入http 在Heroku中,我删除了SSL应用程序以及PointDNS中指向osaka-4635.herokusl.com的指针 目前,我在PointDNS中有以下内容: 从根目录到dns的NS指针x.pointhq.com 从根目录到heroku应用程序的别名 CNAME从www到heroku应用程序 这里是否有问题,或者后端代码中是否有需要更改的内
- 从根目录到dns的NS指针x.pointhq.com
- 从根目录到heroku应用程序的别名
- CNAME从www到heroku应用程序
我想我还有工作要做。。。但是对于那些理解代码的人来说,在这种情况下从https更改为http可能需要大量的工作吗?在settings.py或settings\u base.py中找到中间件类,并对包含“RequestSSLMiddleware”和“ResponseSSLMiddleware”的行进行注释。这些是定制的中间件类,不是Django提供的
在settings.py中注释包含SECURE_PROXY_SSL_标头的行,因为您不需要https,因此不再需要该行。检查您的htaccess。如果里面什么都没有,可能是一段代码重写了
$\u服务器['HTTPS']
@Deer-Outdoor.nl:谢谢。这行代码是否有一个特定的文件需要我查看?在您的htaccess中,查找使用https重写的文件,在代码中查找检查$_服务器['https']是否为http并将其重定向到https的文件。@Deer-Outdoor.nl:搜索了$_服务器['https']的所有文件,但没有匹配项,因此我想我必须检查htaccess。在哪里可以找到/访问此文件(同样,我在Heroku上使用python/django)?在代码中搜索类似于server{listen 80;rewrite^(.*)https://$host$1 permanent;}
。htaccess主要位于网站的根目录中。
class RequestSSLMiddleware(object):
def process_request(self, request):
if not any((DEBUG, request.is_secure(), request.META.get('HTTP_X_FORWARDED_PROTO', '') == 'https')):
url = request.build_absolute_uri(request.get_full_path())
secure_url = url.replace('http://', 'https://')
return HttpResponsePermanentRedirect(secure_url)
class ResponseSSLMiddleware(object):
def process_response(self, request, response):
if not DEBUG:
if 'Location' in response:
if response['Location'][0] == '/':
response['Location'] = 'https://' + get_current_site(request).domain + response['Location']
return response
# Honor the 'X-Forwarded-Proto' header for request.is_secure()
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
secure_scheme_headers = {
'X-FORWARDED-PROTO': 'https'
}
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')