如您所见,我正在尝试使/和/ 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/

10-12 04:53