想象一下,您想通过 Apache 启用对管理器Tomcat 应用程序的访问。基本方法是:
ProxyPass /manager ajp://localhost:8009/manager
ProxyPassReverse /manager ajp://localhost:8009/manager
这按预期工作,通过 access http://yourdomain/manager
。但是,如果您还想更改名称,则无法正常工作。想象一下,您想通过http://yourdomain/foo
.
ProxyPass /foo ajp://localhost:8009/manager
ProxyPassReverse /foo ajp://localhost:8009/manager
当您访问 foo 时,地址栏将变为http://yourdomain/manager
并显示 404:在此服务器上未找到请求的 URL /manager/。
我尝试了下面的 proxy_html 代码,但结果相同:
ProxyPass /foo ajp://localhost:8009/manager
ProxyPassReverse /foo ajp://localhost:8009/manager
SetOutputFilter proxy-html
ProxyHTMLURLMap ^/manager(.*)$ /foo/$1 R
我正在使用 mod_proxy_html 的 3.0.1 版本,因此没有定义“ProxyHTMLEnable On”(我相信这是 3.1 中的新功能)。
缺少什么或定义不正确?
(注意:我相信您也可以使用重写规则来做到这一点,但这可能会更简单)