我已经编写了2个单独的cherrypy Web应用程序,需要通过mod_rewrite或类似的方式将它们都放置在Apache的后面。需要在http://domain.com/WebApp1http://domain.com/WebApp2上访问它们。到目前为止,我已经弄清楚如何做一个虚拟主机,但是只能在http://domain.com/上访问。要让Apache执行此操作的正确配置是什么?我应该使用除mod_rewrite之外的其他东西吗?

最佳答案

如果两个应用程序是使用cherrypy制作的,则可以避免使用mod_rewrite。

像这样将每个应用程序挂载在cherrypy树中:

import cherrypy

from webapp1 import WebApp1
from webapp2 import WebApp2

cherrypy.tree.mount(WebApp1, '/WebApp1')
cherrypy.tree.mount(WebApp2, '/WebApp2')
cherrypy.engine.start()
cherrypy.engine.block()


例如:

 import cherrypy

 class AppOne(object):
     def index(self):
         return 'Hi from app one!'
     index.exposed = True

 class AppTwo(object):
     def index(self):
         return 'Hi from app two!'
     index.exposed = True

 if __name__ == '__main__':
     cherrypy.tree.mount(AppOne(), '/app1')
     cherrypy.tree.mount(AppTwo(), '/app2')
     cherrypy.engine.start()
     cherrypy.engine.block()


要么:

 import cherrypy

 class AppOne(object):
     def index(self):
         return 'Hi from app one!'
     index.exposed = True

 class AppTwo(object):
     def index(self):
         return 'Hi from app two!'
     index.exposed = True

 class Root(object):
     app1 = AppOne()
     app2 = AppTwo()

 if __name__ == '__main__':
     cherrypy.tree.mount(Root())
     cherrypy.engine.start()
     cherrypy.engine.block()
     # cherrypy.quickstart(Root()) # is the same


另一种选择是使用mod_proxy

关于python - 具有多个Web应用程序的Apache mod_rewrite,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14404469/

10-12 16:47
查看更多