gpt4 book ai didi

Django + azure : How to implement a 301 redirect from naked to www domain

转载 作者:行者123 更新时间:2023-12-03 03:51:40 25 4
gpt4 key购买 nike

我正在 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

总结

  1. 在您的应用之一中创建一个新的中间件文件(例如 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)
  2. 调整允许的主机的 settings.py 文件

    ALLOWED_HOSTS=[# ...“example.com”,“www.example.com”,# ...]

  3. 将中间件引用添加到尽可能高的位置,但位于 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com