如您所见,我正在尝试使/和/ BowlingFacelets / faces /都指向同一位置。
问题是当我汇总表格时,JSF页面将添加/ BowlingFacelets / faces /。但是,我不希望最终用户必须键入如此长的语句才能启动应用程序。有没有办法做到这一点?
请注意,如果我手动添加
score.megahooked.com/BowlingFacelets/faces to the URL
ProxyPass / http://megahooked.com:8080/
ProxyPassReverse / http://megahooked.com:8080/
这将无法正常工作
score.megahooked.com/createEvent.xhtml
因为提交新网址时
未找到score.megahooked.com/BowlingFacelets/faces/updateEvent.xhtml。
<VirtualHost *:80>
ServerName score.megahooked.com
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://megahooked.com:8080/BowlingFacelets/faces/
ProxyPassReverse / http://megahooked.com:8080/BowlingFacelets/faces/
ProxyPass /BowlingFacelets/faces/ http://megahooked.com:8080/BowlingFacelets/faces/
ProxyPassReverse /BowlingFacelets/faces/ http://megahooked.com:8080/BowlingFacelets/faces/
</VirtualHost>
最佳答案
解决方案可能是使用mod_proxy_html。它可以解析HTML文档并重写其中的URL。例如,在这里,我将应用程序“ restfrontend”(映射到“ / restfrontend”)作为根应用程序(映射到“ /”)进行访问
ProxyHTMLEnable On
ProxyHTMLExtended On
ProxyHTMLMeta On
ProxyHTMLLogVerbose On
ProxyHTMLURLMap ^/restfrontend()$ $1 [LR]
ProxyHTMLURLMap /restfrontend/ /
ProxyPassReverseCookiePath /restfrontend /
ProxyHTMLDoctype HTML
我强烈建议您不要这样做。这个模块很难配置。同时配置两个可能的路径将是一场噩梦。
更好的解决方案是直接在Tomcat中将应用程序作为ROOT部署,并为其他URL快捷方式添加重定向(使用[R = 301]选项的RewriteRule)。
关于apache - Apache的双重代理声明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20501457/