我正在使用tuckey进行如下网址重写:
以下是我在urlrewrite.xml中具有的规则:
<rule>
<condition type="method">POST</condition>
<note>Service1</note>
<from>/test/request/path</from>
<to context="abc">/request/path</to>
</rule>
<rule>
<condition type="method">PUT</condition>
<note>Service2</note>
<from>/test/request/path</from>
<to context="abc">/request/path</to>
</rule>
<rule>
<condition type="method">DELETE</condition>
<note>Service3</note>
<from>/test/request/path</from>
<to context="abc">/request/path</to>
</rule>
<rule match-type="wildcard">
<condition type="method">POST</condition>
<note>Service4</note>
<from>/test/request/path/*</from>
<to context="abc">/request/path/123</to>
</rule>
<rule>
<condition type="method">GET</condition>
<note>Service5</note>
<from>/test/request/path</from>
<to context="abc">/request/path</to>
</rule>
请注意,“ from”和“ to”路径相同,区别因素是此处的方法。
问题在于带有GET,PUT和DELETE方法的规则工作得很好。带POST的2条规则给我404错误。但是,当我直接使用上下文“ abc”时,一切正常。带有通配符的POST请求仅用于测试。
我确实将一堆日志添加到自定义URLRewrite过滤器中,似乎在RulesChain类中执行doRules之后仅得到404。
有人可以在这里建议我做错了吗。
谢谢。