当我的API只接受HTTPS并且我发出HTTP请求时,默认似乎是404错误。有没有办法自动重定向到HTTPS URL?
答案 0 :(得分:1)
一种简单的方法是使用条件RaiseFault策略。
这是
的简单示例RaiseFault政策如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RaiseFault async="false" continueOnError="false" enabled="true" name="301tossl">
<DisplayName>301toSSL</DisplayName>
<FaultRules/>
<Properties/>
<FaultResponse>
<Set>
<Headers>
<Header name="Location">https://{request.header.host}{request.uri}</Header>
</Headers>
<Payload contentType="text/plain">SSL Required.
</Payload>
<StatusCode>301</StatusCode>
<ReasonPhrase>Moved Permanently</ReasonPhrase>
</Set>
</FaultResponse>
<IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</RaiseFault>
这里有一个在政策上加条件的例子(在本案例的预流程中):
<PreFlow name="PreFlow">
<Request>
<Step>
<FaultRules/>
<Name>301tossl</Name>
<Condition>client.scheme = "http"</Condition>
</Step>
</Request>
<Response/>
</PreFlow>
如果你想下载,我在这里有一个示例 - &gt; https://github.com/carloseberhardt/edge-samples/tree/master/proxies/301ssl
答案 1 :(得分:0)
我会采用类似的方法描述全部捕获的here并重定向。捕获所有代理始终重定向。您无需提出错误,您可以在捕获所有代理的响应流程中执行此操作。