java在Tomcat应用程序中将多个域转换为路径
如果我有两个域和两个子域:
examples.com
dogs.tutorials.com
cats.tutorials.com
我想从一台Tomcat服务器将它们作为Java应用程序从以下应用程序入口路径提供服务:
localhost/app/examples/
localhost/app/tutorials/dogs/
localhost/app/tutorials/cats/
例如:
dogs.tutorials.com/search/?f=terrier
应翻译为:
/tutorials/dogs/search/?f=terrier
可以配置Apache或Tomcat来实现这个目标吗?怎么做强> 我不确定这是否需要apache。这是一个java应用程序,所以apache不应该提供任何内容,只是可以用来将路径转换为域,我不想使用不同的端口,因为这将是一个应用程序。)
# 1 楼答案
这也需要实时重写来自服务器的响应,因为您的webapp创建的任何url都会显示
/tutorials/dogs/search/?f=terrier
,并且必须由Apache前端重写为dogs.tutorials.com/search/?f=terrier
更新:一个mod_rewrite和mod_substitution的组合应该能够做到这一点
出于性能和复杂性的考虑,我不建议使用这种方法
但是,如果这3个URL实际上是3个不同的Web应用程序,那么你可以使用virtual hosting来实现,其中3个Web应用程序是3个不同虚拟主机的
ROOT
应用程序# 2 楼答案
我用mod_proxy和mod_substitute解决了:
只有在响应页面中也有非相对链接时才需要替换,因此它会替换它们(注意,替换每个匹配的字符串)