如何配置两个不同的webapps以在同一主机/端口上使用Apache?

时间:2014-04-13 13:12:28

标签: python apache mod-rewrite mod-wsgi wsgi

我有运行两个应用程序的apache服务器,用python编写的php。 php应该是根URL上的服务器,即localhost。 Python应用程序是一个安静的应用程序,应该在localhost/api/

我在单独的文件中对python应用程序进行了配置,我有这一行:

WSGIScriptAlias /api /home/user/my_app/deployment/deployment/wsgi.py

问题是,现在我的python应用程序可以在:

下访问
localhost/api/api/

我希望:

localhost/api

我可以将WSGIScriptAlias更改为:

WSGIScriptAlias / /home/user/my_app/deployment/deployment/wsgi.py

因为php应用程序无法访问... 另一方面,我无法修改从api开始公开网址的python应用程序......

所以我尝试了mod_rewrite

RewriteEngine On
RewriteRule ^/api(.*) /api/api/$1

但这也不起作用。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

当您拥有WSGIScriptAlias /api /home/user/my_app/deployment/deployment/wsgi.py时,应该可以/api而不是/api/api/访问Python应用。

我的猜测是在你的python应用程序中,在你的配置文件中你设置了从/api提供的上下文根(我不知道确切的术语)。如果你在python应用程序配置中更改它/,那么它应该为你修复它。

答案 1 :(得分:0)

从记忆中,使用:

WSGIScriptAlias /api /home/user/my_app/deployment/deployment/wsgi.py/api

在作为最后一个参数给出的文件路径末尾添加'/ api'会导致mod_wsgi调整传递给WSGI应用程序的SCRIPT_NAME并从中删除'/ api'并将其添加到PATH_INFO中。因此,应用程序将获得路由的完整URL。