如何检测python和flask中正在使用的两个虚拟主机中的哪一个

时间:2014-08-04 16:50:52

标签: python flask

我有一个在apache2服务器上运行的网站,该服务器在端口80上响应两个URL

Url-1 http://www.example.com

Url-2 http://oer.example.com

我想检测用户进来的两个网址中的哪一个并调整服务器的功能并将变量存储在配置变量中

app.config['SITE'] = 'OER'

app.config['SITE'] =  'WWW'

在互联网上环顾四周我可以找到很多使用urllib2的例子,问题是你需要传递你想要切片的网址,我无法找到一种方法来解决这个问题,因为它可能会在两者之间发生变化请求。

我可以分叉代码并提出两个不同的版本,但这就像一盒青蛙一样难看。

欢迎思考。

1 个答案:

答案 0 :(得分:1)

在请求处理程序中使用Flask request对象(from flask import request)和以下之一:

hostname = request.environ.get('HTTP_HOST', '')

url = urlparse(request.url)
hostname = url.netloc

这将得到例如oer.example.comwww.example.com。如果还有一个端口号也包括在内。请记住,这最终来自客户端请求所以“坏”请求可能会设置错误,尽管希望apache不会将这些请求路由到您的应用程序。