我正在尝试驯服 urlrewritefilter,看起来当一个带有重定向的规则与另一个带有 forward 的规则匹配时,我不会像预期的那样在地址栏中看到我正在重定向的 URL。
这是一个配置片段:
<rule>
<from>/patha</from>
<to type="redirect">/pathb</to>
</rule>
<rule>
<from>/pathb</from>
<to type="forward">/pathc</to>
</rule>
在我尝试访问时,我期望通过此规则完成的操作patha
patha
将我的浏览器重定向到的规则pathb
,地址栏中的 URL正在更改。- 由于这条规则不是最后一条,所以规则 for
pathb
也很好匹配,所以浏览器会转发到 pathc,但是,因为这是转发,所以地址栏中的 URL仍然是 pathb。
但实际上发生的事情是我转发到 pathc 而地址栏没有任何变化。
我的问题是:为什么会这样,我如何才能真正实现我所寻求的?
UPD: 我已经通过 jsp 中的重定向测试了 urlrewritefilter 转发:
response.setStatus(302);
response.setHeader("Location", "pathb");
response.setHeader("Connection", "close");
结果是一样的 - URL 没有被重写。