Heroku在Django网站上将非www重定向到www

问题描述

我目前在Bluehost上拥有一个网站域。 Bluehost无法使用301重定向将https://example.com重定向到https://www.example.com,因为我没有托管它们。现在,在我的DNS设置中,我有一个CNAME (Alias)记录,指向 @ 指向<string1>.herokudns.com,还有另一个CNAME (Alias),它指向 www <string2>.herokudns.com。请注意,我有SSL证书,并且都在HTTPS上。

我已经联系了Bluehost,他们说一种解决方案是将 www @ 都指向<string1>.herokudns.com,但这似乎并不是重定向到我。

如何在Python的Heroku中设法将裸域重定向到 www ?由于Bluehost TTL是4个小时,因此我无法对其进行大量测试,而且无法快速更改配置。

提前感谢您的帮助!

解决方法

所以我可以点击此链接:

https://adamj.eu/tech/2020/03/02/how-to-make-django-redirect-www-to-your-bare-domain/

我像这样自定义了

from django.http import 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 == "example.com":
            return HttpResponsePermanentRedirect(
                "https://www.example.com" + request.path
            )
        else:
            return self.get_response(request)

我已经对其进行了测试,并且目前可以使用!我仍然感谢您对此方法的任何反馈!

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...