从Django请求获取域名

2024-10-01 09:38:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个网站的域名是www.example1.com,最近我把另一个域名dnswww.example2.com指向同一个服务器,它包含www.example1.com网站,所以www.example1.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,如下所示

^{pr2}$

但是如何获得实际的域名呢?在


Tags: comhttphostreturn网站requestdomainwww
2条回答

你在古尼康面前用nginx吗?在

根据这两个SO问题herehere,您的请求.META强烈建议对nginx配置进行错误配置。在

两位网帖的相关回应:

Seems like proxy_set_header Host $http_host should be changed to proxy_set_header Host $host and server_name should be set appropriately to the address used to access the server.

在请求.META['HTTP']显示服务器上的当前域名,如果域名未绑定,则显示IP地址。在


例如,我在我的项目中有这个功能

def test(request):
   return HttpResponse("{}".format(request.META['HTTP_HOST']))
  1. 本地服务器上的“显示自我”测试功能是什么

    enter image description here

  2. 在域名aut0的远程服务器上执行什么show's me测试功能零件.现场enter image description here

我假设您在本地服务器上测试代码,这就是为什么您的输出是127.0.0.1:8001。如果你给你的服务器设置域名,我想一切都会好起来的:)

相关问题 更多 >