使用mod_rewrite来隐藏tomcat端口

我有Tomcat上的应用程序使用这样的URL: http://xxx:8080/myapp

我不希望用户在URL中看到端口

嗨可以做一个这样的重写规则:

 RewriteRule ^/myapp(.*) http://xxx:8080/myapp$1 [P,L] 

这样,如果用户转到URL http://xxx/myapp他可以进入应用程序,但端口仍然会显示在浏览器上。 我希望用户看到的URL总是http://xxx/myapp

我怎样才能做到这一点使用mod_rewrite?

您可以在Apache中使用反向代理。

创build一个在80端口和安装代理上侦听的VirtualHost:

 ProxyPreserveHost Off ProxyPass / http://xxx:8091/app/ ProxyPassReverse / http://xxx:8091/app/ 

如果你没有任何其他web服务器像apache一样监听端口80,一个简单的解决scheme是将tomcat的监听端口改为80。

如果您在端口80上使用apache监听,则仍然可以使用mod_jk在端口80上访问您的应用程序。

最好的方法是通过反向代理。

您可以在tomcat前面设置另一个作为反向代理的web服务器,并自动在前端的端口80和后端的端口8080之间进行转换。

Apache可以使用mod_proxy甚至mod_jk和/或mod_proxy_ajp进行configuration。 否则,您可以使用独立代理(如磅)