2014-06-19 3 views

답변

1

쉬운 방법 중 하나는 조건부 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에서) 정책에 조건을 넣어의 예 : 여기

는 다음과 같이 RaiseFault 정책이 보이는

의 간단한 예제

<PreFlow name="PreFlow"> 
    <Request> 
     <Step> 
      <FaultRules/> 
      <Name>301tossl</Name> 
      <Condition>client.scheme = "http"</Condition> 
     </Step> 
    </Request> 
    <Response/> 
</PreFlow> 
다운로드하려면 여기 샘플을 가지고

-> https://github.com/carloseberhardt/edge-samples/tree/master/proxies/301ssl

0

캐치 전체 및 리디렉션의 here과 비슷한 접근 방식을 사용했습니다. 모든 프록시를 포착하면 항상 리디렉션됩니다. 당신은 잘못을 제기 할 필요가 없습니다, 당신은 모든 프록시 잡기의 응답 흐름에서 그것을 할 수 있습니다.