簡體   English   中英

Tuckey-URL重定向有效,但轉發無效

[英]Tuckey - URL redirect works but forwarding does not

我有一個簡單的曲棍球規則,將一條路徑轉發到另一條路徑,如下所示:

<rule>
  <name>foo</name>
  <condition name="user-agent">some condition based on device</condition>
  <from>^/abc/(.*)$</from>
  <to type="forward">/xyz/$1</to>
</rule>

照原樣,當我打/ abc時得到404,但是當我將類型更改為“ redirect”時,它可以正常工作。

我定義的規則有什么問題嗎?

<to type="forward">/xyz</to>

相當於

RequestDispatcher rq = request.getRequestDispatcher("/xyz"); 
rq.forward(request, response);

轉發發生在服務器上。 Servlet容器只是將相同的請求轉發到目標url,而瀏覽器對此一無所知。 因此,您的轉發目標網址應在相同的上下文中。

因此,這意味着,如果/xyz/ URL是某個外部URL,而不是在您的應用程序上下文中,則無法轉發給它-而是應該重定向。

就是說,我假設您的<to> URL是外部的,這就是為什么UrlRewriteFilter不起作用的原因。 您可以更改為redirect或確保要轉發到應用程序上下文中的URL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM