【问题标题】:Apache mod_rewrite with multiple web apps具有多个 Web 应用程序的 Apache mod_rewrite
【发布时间】:2013-01-18 17:36:07
【问题描述】:

我已经编写了 2 个独立的 Cherrypy Web 应用程序,需要使用 mod_rewrite 或类似的东西将它们都放在 Apache 后面。需要通过http://domain.com/WebApp1http://domain.com/WebApp2 访问它们。到目前为止,我想出了如何做一个虚拟主机,但它只能在http://domain.com/ 访问。 Apache 的正确配置是什么?我应该使用 mod_rewrite 以外的东西吗?

【问题讨论】:

    标签: python apache mod-rewrite cherrypy


    【解决方案1】:

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

    像这样在樱桃树中挂载每个应用程序:

    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

    【讨论】:

    • 谢谢先生!这是我的问题的完美答案。我什至从来没有想过要这样做。
    猜你喜欢
    • 1970-01-01
    • 2013-12-29
    • 2018-11-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-12
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多