[英]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.