2013-03-24 134 views
0

我正在使用TomCat服務器並需要轉換到新位置。我將暫時在舊服務器上留下一個TomCat實例,以優雅地轉發舊鏈接。我發現了tuckey的網址重寫,它似乎工作得很好,除非它在轉發之前不顯示消息。顯示通知頁面後重定向URL

我現在的解決方案是在「http://myserver:8080/」上放置一個「移動」通知,並附帶HTML重定向,該重定向將在5秒後自動轉發。

我會對任何直接鏈接使用urlrewrite規則,如:http://myserver:8080/browse/ISSUE-123轉發到http://mynewserver:8080/browse/ISSUE-123。這有效,但我希望能夠向用戶顯示一條消息,然後將它們轉發到新位置。

任何提示將不勝感激。我認爲目前的解決方案「足夠」,但它可能會更好。

編輯

我發現了一個解決方案,我想會的工作,但我仍然是開放的反饋。我使用scriptlet創建了一個簡單的JSP頁面,該頁面將接受一個參數(由URL重寫器生成),以將HTML重定向放入「此頁面已移動」模板中。這樣用戶將被轉發到正確的地方,並且還會看到一條消息,告訴他們更新他們的鏈接。

回答

0

好吧,既然這已經到位,我想我會詳細解答我的答案,以防將來幫助別人。

該解決方案可能需要30分鐘才能實施。

  1. 下載Tomcat的(http://tomcat.apache.org/
  2. 下載UrlReWrite(http://tuckey.org/urlrewrite/
  3. 配置與我的期望前進

    <urlrewrite> 
        <rule> 
         <from>/browse/(.*)</from> 
         <to type="redirect">http://mynewserver:8080/browse/$1</to> 
        </rule> 
    </urlrewrite> 
    

的urlrewrite.xml這將立即轉發他們的新頁。我找到了一個體面的方式通過創建一個簡單的HTML頁面與一個scriptlet內.JSP顯示一個頁面,然後向前:

<meta http-equiv="REFRESH" content="5;url=http://mynewserver:8080/browse/<%= request.getParameter("requestedPage") %>"> 

然後我更新了urlrewrite.xml以下幾點:

<urlrewrite> 
    <rule> 
     <from>/browse/(.*)</from> 
     <to type="redirect">%{context-path}/forward.jsp?requestedPage=$1</to> 
    </rule> 
</urlrewrite> 

這會將所需頁面傳遞到「前進」屏幕,該屏幕具有元重定向,然後轉到新服務器上的同一頁面,同時還告知用戶有關服務器移動的信息。

+0

我知道這很容易受到XSS的影響,但我無法(很快)讓'EscapeHtml()'工作。因爲這是一個僅限Intranet的網站,所以我並不擔心這是安全風險。 – Origin 2013-03-26 12:59:32

相關問題