2015-12-12 17 views
0

我遇到了RewriteRule的問題。我的tomcat應用程序是Xyz,它放置在localhost的文件夾中。服務器名稱是www.mydomain.com。申請可以通過www.mydomain.com/Xyz進行,但我想通過www.mydomain.com與其聯繫。用RewriteRule可以實現這個嗎?Apache服務器RewriteRule到Tomcat war - 從url中刪除應用程序名稱

我使用JkMount Apache配置文件內:

JkMount /Xyz worker1 
JkMount /Xyz/* worker1 

其中worker1被工人的構件定義爲:

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

我試圖添加到剛剛JkMount之前Apache配置文件重寫規則:

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

但沒有成功。可以通過www.mydomain.com/Xyz輕鬆獲得應用程序,但www.mydomain.com根本無法使用。它只是產生錯誤信息...

有什麼建議嗎?

回答

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

相關問題