将旧版 Post 重定向到 ServiceStack API
Redirect Legacy Post to ServiceStack API
我有一个 ASP.Net MVC 站点,它是 运行 ServiceStack v3.9.71。我有一个新的 ServiceStack API 配置为在 ~/api/*
可用但需要将 POST 请求从旧位置 ~/service/*
重定向到新的 API 但是我我脱困了。
我试过使用 url 重定向,但这样做 POST
变成了 GET
并且 POST 数据丢失了。
<rule name="GetVenuesByLocation" stopProcessing="true">
<match url="^service/getvenuelistbylocation/$" />
<action redirectType="Temporary" type="Redirect" url="/api/VenueListByLocation" />
</rule>
这可以实现吗?如果可以,请有人指出正确的方向吗?
谢谢,西蒙
在评论中回答和讨论。添加答案以方便其他人找到解决方案。
临时重写规则(在问题中)是正确的,将执行 307 POST 保持原始值。
问题是已经存在的重定向重写规则在达到临时重写规则之前创建了 301。 301 会丢失数据。
Per ProNotion - 事实证明该规则是正确的,但需要在强制尾部斜杠的规则之前添加。然后它可以使用或不使用尾部斜杠!
我有一个 ASP.Net MVC 站点,它是 运行 ServiceStack v3.9.71。我有一个新的 ServiceStack API 配置为在 ~/api/*
可用但需要将 POST 请求从旧位置 ~/service/*
重定向到新的 API 但是我我脱困了。
我试过使用 url 重定向,但这样做 POST
变成了 GET
并且 POST 数据丢失了。
<rule name="GetVenuesByLocation" stopProcessing="true">
<match url="^service/getvenuelistbylocation/$" />
<action redirectType="Temporary" type="Redirect" url="/api/VenueListByLocation" />
</rule>
这可以实现吗?如果可以,请有人指出正确的方向吗?
谢谢,西蒙
在评论中回答和讨论。添加答案以方便其他人找到解决方案。
临时重写规则(在问题中)是正确的,将执行 307 POST 保持原始值。
问题是已经存在的重定向重写规则在达到临时重写规则之前创建了 301。 301 会丢失数据。
Per ProNotion - 事实证明该规则是正确的,但需要在强制尾部斜杠的规则之前添加。然后它可以使用或不使用尾部斜杠!