我有一个域名为www.example1.com
的网站,最近我将另一个域名dns www.example2.com
指向了包含www.example1.com的同一服务器,因此www.example1.com
和www.example2.com
都提供相同的代码,但是域名应该不同,我想获取域名来自Django请求的名称如下
def homepage(request):
domain = request.META['HTTP_HOST']
if domain == 'www.example1.com':
return HTTPResponseReredirect('/new/')
elif domain == 'www.example2.com':
return HTTPResponseReredirect('/old/')
因此,基于域名,我想将用户重定向到不同的网页,但是每次我使用
request.META['HTTP_HOST']
时,输出都是一个IP地址127.0.0.1:8001
,如下所示META:{'HTTP_ACCEPT': ‘text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8’,
'HTTP_ACCEPT_ENCODING': 'gzip, deflate, sdch, br',
'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.8',
'HTTP_CONNECTION': 'close',
'HTTP_COOKIE': 'sessionid=xxxxxxxxxxxxxxxx; ',
'HTTP_HOST': '127.0.0.1:8001',
'HTTP_UPGRADE_INSECURE_REQUESTS': '1',
'HTTP_USER_AGENT': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',
'PATH_INFO': u'/',
'QUERY_STRING': '',
'RAW_URI': '/',
'REMOTE_ADDR': '127.0.0.1',
'REMOTE_PORT': '41280',
'REQUEST_METHOD': 'GET',
'SCRIPT_NAME': u'',
'SERVER_NAME': '127.0.0.1',
'SERVER_PORT': '8001',
'SERVER_PROTOCOL': 'HTTP/1.0',
'SERVER_SOFTWARE': 'gunicorn/19.0.0',
但是如何获得实际的域名呢?
最佳答案
您是否在gunicorn前面使用nginx?
根据这两个SO问题here和here,您的请求中有一个错误的“HTTP_HOST”。META强烈建议您对nginx配置进行错误配置。
两个职位的有关答复:
关于python - 从Django请求获取域名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42220363/