2011-10-21 72 views
0

摘要爲什麼我的UrlRewriteFilter不能在Tomcat上工作?

我在UrlRewriteFilter上啓動並在Tomcat上運行時遇到問題。

問題

我只能得到從默認urlrewrite.xml文件中的兩個規則的工作之一。我遵循installation directions沒有太大的問題,我沒有改變任何默認設置或與配置文件搞砸。

出站規則的工作原理:http://localhost:8080/mysite/rewrite-status成功帶我到我的urlrewrite.xml文件的描述頁。

但是常規規則不起作用:http://localhost:8080/mysite/test/status不會將我重定向到http://localhost:8080/mysite/rewrite-status。我得到了404結果。

我是否期待這些規則中的錯誤?什麼可能是錯的?

詳細

這裏是自帶的安裝urlrewrite.xml文件:

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN" 
    "http://www.tuckey.org/res/dtds/urlrewrite3.2.dtd"> 

<urlrewrite> 

    <rule> 
     <note> 
      The rule means that requests to /test/status/ will be redirected to /rewrite-status 
      the url will be rewritten. 
     </note> 
     <from>/test/status/</from> 
     <to type="redirect">%{context-path}/rewrite-status</to> 
    </rule> 


    <outbound-rule> 
     <note> 
      The outbound-rule specifies that when response.encodeURL is called (if you are using JSTL c:url) 
      the url /rewrite-status will be rewritten to /test/status/. 

      The above rule and this outbound-rule means that end users should never see the 
      url /rewrite-status only /test/status/ both in their location bar and in hyperlinks 
      in your pages. 
     </note> 
     <from>/rewrite-status</from> 
     <to>/test/status/</to> 
    </outbound-rule> 

</urlrewrite> 
+0

我問了一個非常類似的問題;但還沒有時間來測試我得到的答案。你可以查看它,看看信息是否有用,雖然:http://stackoverflow.com/questions/7218909/urlrewritefilter-run-element-produces-404-but-to-element-works-fine-on-gae- java的 – Dave

回答

1

是否添加或刪除尾隨正斜槓(/)有所作爲?可以嘗試將它設置在規則標記集的from和to標記中,也可以設置爲。

1

@Mike是正確的,改變

<from>/test/status/</from> 

<from>/test/status</from> 
相關問題