【发布时间】:2019-02-01 10:31:37
【问题描述】:
我正在开发一个使用 Django 在 Python 3 灵活环境中使用 Google Cloud Platform 的 App Engine 的项目,并且我正在尝试将所有路由上的所有请求永久重定向到 http 到 https,但是这样远远没有成功。我可以通过https 访问该站点,但前提是在地址栏中明确写入。
我看过这篇帖子:How to permanently redirect `http://` and `www.` URLs to `https://`?,但没有找到有用的答案。
除了重定向之外,该应用在各个方面都能正常工作。这是我的app.yaml 文件:
# [START runtime]
runtime: python
env: flex
entrypoint: gunicorn -b :$PORT myproject.wsgi
runtime_config:
python_version: 3
# [END runtime]
在myproject/settings.py 我定义了这些变量:
SECURE_SSL_REDIRECT = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SECURE_PROXY_SSL_HEADER = ('HTTP-X-FORWARDED-PROTO', 'https')
在我的本地机器上,当我将SECURE_SSL_REDIRECT 设置为True 时,我被正确地重定向到https,即使本地主机不支持 SSL。在生产中,我仍然可以使用 http 访问该站点。
是否有什么我遗漏或做错了导致重定向不发生?
【问题讨论】:
标签: python django google-app-engine ssl google-cloud-platform