繁体   English   中英

Apache服务器RewriteRule与Tomcat战争-从URL删除应用程序名称

[英]Apache server RewriteRule to Tomcat war - Remove application name from url

我在RewriteRule方面遇到问题。 我的tomcat应用程序是Xyz,它放置在localhost上的文件夹中。 服务器名称为www.mydomain.com。 可以通过www.mydomain.com/Xyz到达应用程序,但我想通过www.mydomain.com到达它。 是否可以使用RewriteRule实现此目的?

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

JkMount /Xyz worker1
JkMount /Xyz/* worker1

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

worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.lbfactor=1

我试图在JkMount之前将其添加到Apache配置文件RewriteRule中:

ServerName www.mydomain.com
RewriteEngine on
RewriteRule ^/(.+)$ /Xyz/$1 [L,PT]

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

有什么建议么?

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

详细的Tomcat上下文文档在这里

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

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

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

$CATALINA_HOME$/conf/ROOT.xml 

在ROOT.xml中,定义应用程序根目录(docBase)的位置,并将path元素保留为

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

类似的帖子在这里

斯雷克诺

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM