重定向django中的旧版根URL

时间:2016-06-12 21:17:34

标签: django redirect mod-wsgi

我试图将旧的根URL永久重定向到Django中的新位置(在Red Hat Openshift上托管)。

我已经尝试了this solution,但无法让它发挥作用(即使是最简单的http情况,也没有其他路径)。我对wsgi没有经验,因为你可以猜到,所有的帮助都非常感激。

我尝试编辑wsgi.py的最后一部分(从www.olddomain.com重定向到www.newdomain.com)。当我尝试部署它时,尝试访问www.olddomain.com会导致错误("无法访问此页面"):

...
from django.core.wsgi import get_wsgi_application

_application = get_wsgi_application()

def application(environ, start_response):
  if environ['HTTP_HOST'][:17] == 'www.olddomain.com':
    start_response('301 Redirect', [('Location', 'http://www.newdomain.com/'),])
    return []

  return _application(environ, start_response)

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

检查缩进级别。另外,请确保HTTP_HOST环境变量的值是旧域。

from django.core.handlers.wsgi import WSGIHandler


_application = WSGIHandler()


def application(environ, start_response):
    if environ['HTTP_HOST'][:21] != 'www.example.com':
        start_response('301 Redirect', [
            ('Location', 'http://www.example.com/'),
        ])
        return []
    return _application(environ, start_response)