- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 Microsoft Azure 上运行 Django 应用程序,需要将所有流量 301 重定向到单个安全 www 域,即
来自:
http://example.com
https://example.com
http://www.example.com
致:
https://www.example.com
我认为我需要使用服务器配置文件设置重定向,但我是 Azure 新手,不知道如何进行。该网站在 Linux 上运行。
此外,我仅设置了 https,因此 http 请求当前定向到 https。
感谢您的帮助!
最佳答案
我采用的解决方案实现起来非常简单,可以在以下位置找到:
How to Make Django Redirect WWW to Your Bare Domain
总结
在您的应用之一中创建一个新的中间件文件(例如 myapp)
从 django.http 导入 HttpResponsePermanentRedirect
class WwwRedirectMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
host = request.get_host().partition(':')[0]
if host == "www.example.com":
return HttpResponsePermanentRedirect(
"https://example.com" + request.path
)
else:
return self.get_response(request)
调整允许的主机的 settings.py 文件
ALLOWED_HOSTS=[# ...“example.com”,“www.example.com”,# ...]
将中间件引用添加到尽可能高的位置,但位于 SecurityMiddleware 之后
中间件 = [“django.middleware.common.CommonMiddleware”,“django.middleware.security.SecurityMiddleware”,“myapp.middleware.WwwRedirectMiddleware”,# ...]
关于 Django + azure : How to implement a 301 redirect from naked to www domain,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66459301/
我是一名优秀的程序员,十分优秀!