Apache服务器RewriteRule到Tomcat war - 从url中删除应用程序名称

时间:2015-12-12 00:40:34

标签: java apache tomcat url-rewriting

我遇到了RewriteRule的问题。我的tomcat应用程序是Xyz,它放在localhost的文件夹中。服务器名称是www.mydomain.com。可以通过www.mydomain.com/Xyz与我们联系,但我想通过www.mydomain.com与他们联系。是否可以使用RewriteRule来实现这一目标?

我在Apache配置文件中使用JkMount:

a = 5 * ('yeah!)')

其中worker1是worker的成员,定义为:

JkMount /Xyz worker1
JkMount /Xyz/* worker1

我试图在JkMount:

之前添加到Apache配置文件RewriteRule
worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.lbfactor=1

但没有成功。可以通过www.mydomain.com/Xyz轻松访问应用程序,但www.mydomain.com根本不起作用。它只是产生错误信息......

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

如果您不想使用URL重写,您可以通过定义ROOT上下文来实现类似。

详细的Tomcat上下文文档here

[注意:没有尝试过,稍后会做]我建议您将移动应用程序移动到/ webapps之外的目录中,例如。 /安装MyApps / XYZ /;然后添加一个文件来定义您的应用程序上下文(对于Tomcat 7)

$CATALINA_HOME$/conf/Catalina/localhost/ROOT.xml 

以前的Tomcat版本可能类似于:

$CATALINA_HOME$/conf/ROOT.xml 

在ROOT.xml中定义应用程序根目录(docBase)的位置,并且l 将路径元素清空

<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
    <Context deployOnStartup="true" docBase="/myapps/xyz/" path="" reloadable="false">
    <Manager pathname=""/>
</Context>

类似的帖子在这里

Srecno