我正嘗試使用UrlRewriteFilter 4.0.3將舊的servlet url重定向到新的url。我有一堆工作規則,但在<from></from>
中有一個servlet url的那個不起作用。UrlRewriteFilter規則不能使用servlet url
我的規則是這樣的:
<rule>
<from>/servlet/OldServlet\?old_parameter=&id=([0-9]+)$</from>
<to type="redirect">/servlet/NewServlet?new_parameter=&document_id=$1</to>
</rule>
我試圖切出「從」碎片「+」。我設法通過刪除「?」來使規則起作用從我的網址和規則。看來,servlet的URL不符合定義的規則。出於傳統原因,OldServlet仍然映射在我的web.xml中。
編輯:
org.tuckey.web.filters.urlrewrite.UrlRewriter DEBUG: processing request for /servlet/OldServlet
的URL會從微調 「?」。
編輯2:
UrlRewriter.java:
public String getPathWithinApplication(HttpServletRequest request) {
String requestUri = request.getRequestURI();
...
似乎UrlRewriteFilter使用不返回完整URL的方法。
http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getRequestURI()
返回從協議名稱,最多在HTTP請求的第一行的查詢字符串這個請求的URL的一部分。