将Legacy Post重定向到ServiceStack API

时间:2015-02-11 20:23:57

标签: asp.net asp.net-mvc servicestack

我有一个运行ServiceStack v3.9.71的ASP.Net MVC站点。我有一个新的ServiceStack API,配置为~/api/*可用,但需要将POST请求从旧位置~/service/*重定向到新API但是我要解开。

我尝试过使用网址重定向,但这样做POST变为GET,POST数据丢失。

<rule name="GetVenuesByLocation" stopProcessing="true">
    <match url="^service/getvenuelistbylocation/$" />
    <action redirectType="Temporary" type="Redirect" url="/api/VenueListByLocation" />
</rule>

这可以实现吗?若有人可以请指出我正确的方向?

谢谢,西蒙

1 个答案:

答案 0 :(得分:2)

在评论中回答和讨论。添加答案以便其他人更容易找到解决方案。

临时重写规则(在问题中)是正确的,将执行307 POST以保持原始值。

问题是已经存在的重定向重写规则是在命中临时重写规则之前创建301。 301会丢失数据。

Per ProNotion - 事实证明规则是正确的,但需要在强制拖尾斜杠的规则之前添加。然后它可以使用或不使用尾部斜杠!