Django设置301域名重定向

Django网站域名发生迁移变更时,如何告知搜索引擎?

这时需要使用301重定向,把通过旧域名URL访问站点的用户引导至新的域名。

301 Moved Permanently是服务器返回的HTTP头信息(header)中的状态码的一种。当用户或搜索引擎向网站服务器发出浏览请求时,返回301状态码代表网页永久性地迁移到了另一个URL。

例如,网站迁移到了新的域名:www.example.com,修改wsgi.py,在尾部添加如下代码:


import django.core.handlers.wsgi
_application = django.core.handlers.wsgi.WSGIHandler()

DOMAIN_NAME = 'www.example.com'
def application(environ, start_response):
  if environ['HTTP_HOST'] != DOMAIN_NAME:
    location = DOMAIN_NAME + environ['PATH_INFO']
    if environ.get('QUERY_STRING'):
      location += '?' + environ['QUERY_STRING']
    start_response('301 Redirect', [('Location', location),])
    return []
  return _application(environ, start_response)

使用旧域名访问时,返回结果如下:
Request Method: GET
Status Code: 301 MOVED PERMANENTLY

本文链接:http://bookshadow.com/weblog/2014/04/21/django-301-redirect/
请尊重作者的劳动成果,转载请注明出处!书影博客保留对文章的所有权利。

如果您喜欢这篇博文,欢迎您捐赠书影博客: ,查看支付宝二维码