小编典典

在Google App Engine中使用子域

python

如何在Google App Engine(Python)中使用子域。

我想获得第一部分域名,并采取一些行动(处理程序)。

例如:
product.example.com->发送给产品处理程序
user.example.com->发送给用户处理程序

实际上,使用虚拟路径我有以下代码:

  application = webapp.WSGIApplication(
    [('/', IndexHandler),
     ('/product/(.*)', ProductHandler),
     ('/user/(.*)', UserHandler)
  ]

阅读 210

收藏
2021-01-20

共1个答案

小编典典

WSGIApplication无法基于域进行路由。相反,您需要为每个子域创建一个单独的应用程序,如下所示:

applications = {
  'product.example.com': webapp.WSGIApplication([
    ('/', IndexHandler),
    ('/(.*)', ProductHandler)]),
  'user.example.com': webapp.WSGIApplication([
    ('/', IndexHandler),
    ('/(.*)', UserHandler)]),
}

def main():
  run_wsgi_app(applications[os.environ['HTTP_HOST']])

if __name__ == '__main__':
  main()

或者,您可以编写自己的WSGIApplication子类,该子类知道如何处理多个主机。

2021-01-20