使用django重定向客户端通过“www.domain.com”连接到“domain.com”

时间:2012-06-27 02:22:58

标签: django

似乎谷歌链接到我的页面包含“www”。在域之前,这会导致安全错误,因为我正在从画布中读取数据,如果图像来自“www.x.com”而不是“x.com”,则图像将被标记为交叉标记。

所以我想知道用www重定向人员的最好方法是什么。在一个没有?

(或者,如果没有www,谷歌可以链接吗?)

由于

1 个答案:

答案 0 :(得分:3)

最好的方法是让你的网络服务器(apache / nginx)处理重定向,而不是在Django中进行。

在nginx中它看起来像这样:

server {
        listen 80;
        server_name www.example.com;
        rewrite ^(.*) http://example.com:80$1 permanent;
}

当然你可以在Django中执行它,只需检查子域www是否存在,然后重定向到没有此子域的相同URL。在这种情况下,您需要将此逻辑添加到您的所有视图中(例如,可能是装饰器)。尽管如此,我仍然难以维护,而且更好,更简单的方法就是我上面提到的那个。