簡體   English   中英

如何檢測python和flask中正在使用的兩個虛擬主機中的哪個

[英]How to detect which of the two virtual hosts is being used in python and flask

我有一個在燒瓶中開發的網站運行在apache2服務器上,該服務器在端口80上響應兩個URL

網址1 http://www.example.com

網址2 http://oer.example.com

我想檢測用戶來自兩個URL中的哪個URL,並調整服務器的功能並將變量存儲在配置變量中

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

要么

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

在Internet上環顧四周,我可以找到許多使用urllib2的示例,問題是您需要將要切片的url傳遞給它,而我找不到一種將其切出的方法,因為它可能會隨每個請求在兩者之間發生變化。

我可以分叉代碼並提出兩個不同的版本,但這就像一盒青蛙一樣丑陋。

歡迎思想。

在您的請求處理程序中使用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不會將那些路由到您的應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM