[英]Heroku Django: Redirect all requests for www. to root domain
在[PROJECT_NAME]/middleware.py
創建自己的中間件,如下所示:
from django.conf import settings
from django.http import HttpResponsePermanentRedirect
from django.utils.deprecation import MiddlewareMixin
class RemoveWWWMiddleware(MiddlewareMixin):
"""
Based on the REMOVE_WWW setting, this middleware removes "www." from the
start of any URLs.
"""
def process_request(self, request):
host = request.get_host()
if settings.REMOVE_WWW and host and host.startswith('www.'):
redirect_url = '%s://%s%s' % (
request.scheme, host[4:], request.get_full_path()
)
return HttpResponsePermanentRedirect(redirect_url)
然后,在項目的settings.py
:
REMOVE_WWW = True
[PROJECT_NAME].middleware.RemoveWWWMiddleware
添加到MIDDLEWARE
列表中。 PREPEND_WWW = True
這個中間件基於Django的CommonMiddleware 。
解決了這個問題:
from django.http import HttpResponsePermanentRedirect
class WWWRedirectMiddleware(object):
def process_request(self, request):
if request.META['HTTP_HOST'].startswith('www.'):
return HttpResponsePermanentRedirect('http://mysite.com')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.