【问题标题】:301 Redirect Within Django for www Subdomain301 在 Django 中重定向 www 子域
【发布时间】:2013-12-21 03:37:53
【问题描述】:

我在我的 Python/Django 应用程序中使用 DNSimple 和 Heroku,但是无论有没有“www”都会访问该站点,并且基本上给了我两个不同的重复站点。我应该在我的应用程序中做一个重定向表单来解决这个问题。如何在 Django 中创建从没有“www”到“www”的 301 重定向?

【问题讨论】:

    标签: python django redirect django-urls


    【解决方案1】:

    只需返回一个重定向案例,该请求是针对裸域发出的。

    if not request.META.get('HTTP_HOST', '').startswith('www'):
        return HttpResponseRedirect(
                   'http://www.example.com/' + request.get_full_path()
               )
    

    如果您使用基于类的视图,您可以将其设置为装饰器或将其放在基类中,但如果您在网络服务器级别处理此重定向,性能会更好。

    您正在使用 PaaS 提供商,这是一个常见的用例,他们都有,请咨询他们的服务台。

    使用 mod_rewrite 的方法有点离题,因为它与编程无关;像这样的东西应该放在虚拟主机配置中:

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^example\.com
    RewriteRule ^(.*)$ http://www.example.com$1 [R=permanent,L] 
    

    【讨论】:

      猜你喜欢
      • 2016-01-15
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-19
      • 2011-06-22
      • 2013-06-26
      • 1970-01-01
      • 2021-06-02
      相关资源
      最近更新 更多