我已经安装了Oracle Apex,并尝试使用apache反向代理部署多个应用程序,但是我无法获得apache来将虚拟主机限制为一个应用程序ID。
虚拟主机
<VirtualHost *:80>
ServerName www.example.com
ServerAlias test.example.com
ServerAlias example.com
ProxyPass / http://127.0.0.1:8080/ords/
ProxyPassReverse / http://127.0.0.1:8080/ords/
RewriteCond %{QUERY_STRING} !^p=101$
RewriteRule ^/$ f?p=101 [L,P]
<Location /i>
ProxyPass http://127.0.0.1:8080/i
ProxyPassReverse http://127.0.0.1:8080/i
</Location>
</VirtualHost>
我要尝试做的是,如果变量p不是101,我希望代理重定向用户/ f?p = 101,以便仅可以访问该虚拟主机上我想要的应用程序,而不能访问其他应用程序,但是我可以不会工作。
如果我执行/ f?p = 102,它将显示其他应用程序,而不会再次将我重定向到应用程序101。
有人知道如何解决此问题吗?
答案 0 :(得分:1)
我找到了解决方法:
RewriteCond %{QUERY_STRING} ^f?p=100 [OR]
RewriteCond %{QUERY_STRING} ^f?p=4550 [OR]
RewriteCond %{QUERY_STRING} ^f?p=4000
RewriteRule ^/(.*) https://%{HTTP_HOST}/f?p=101:1 [R]
所以我在做的是检查我们是否获得需要过滤的应用程序ID。 之后,我将页面重定向到应用程序的原始页面。