我正在尝试设置代理密码来映射http://status.site.com/cacti到http://othersite.com:8080/cacti,但没有映射整个 /。
这里是配置:
<VirtualHost *:80>
ServerName status.site.com
ProxyRequests Off
ProxyPass /cacti/ http://othersite.com:8080/cacti/
ProxyPassReverse /cacti/ http://othersite.com:8080/cacti/
ProxyPreserveHost On
</VirtualHost>
http://status.site.com/cacti/graph_view.php
现在,除了左侧的树状菜单损坏、整个菜单展开且无法折叠/展开外,大部分功能都已正常。此外,菜单项无法点击(但鼠标悬停时会显示正确的链接)。
这种ProxyPass / http://othersite.com:8080/
情况不会发生,一切都会正常。这两种方法的处理方式有何不同?我尝试了各种组合,ProxyHTMLURLMap
但都没有成功。
答案1
删除尾随的斜杠...
<VirtualHost *:80>
ServerName status.site.com
ProxyRequests Off
ProxyPass /cacti http://othersite.com:8080/cacti
ProxyPassReverse /cacti http://othersite.com:8080/cacti
ProxyPreserveHost On
</VirtualHost>
答案2
我发现为 /javascript 创建另一个代理条目可以解决这个问题。所以它看起来像这样。
<VirtualHost *:80>
ServerName status.site.com
ProxyRequests Off
ProxyPass /cacti http://othersite.com:8080/cacti
ProxyPassReverse /cacti http://othersite.com:8080/cacti
ProxyPass /javascript http://othersite.com:8080/javascript
ProxyPassReverse /javascript http://othersite.com:8080/javascript
ProxyPreserveHost On
</VirtualHost>