簡體   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