我有运行两个应用程序的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
但这也不起作用。有什么想法吗?
答案 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。