1

예를 들어 http://my-site.com/blog/post1http://blog.my-site.com/post1으로 리디렉션하고 싶습니다. 다른 곳에서 답을 찾으려고했지만 항상 반대 방향 (하위 도메인에서 경로로 리디렉션)으로 진행됩니다.Amazon S3를 사용하여 경로를 기반으로 요청을 하위 도메인으로 리디렉션하는 방법

가능하면로드 밸런서 또는 프록시 서버를 설정할 필요가 없으므로이 작업을 S3에서만 수행하고 싶습니다. 이 경우 https://my-site.com은 Cloudfront 배포판 뒤에 S3 정적 웹 사이트 호스팅으로 배포됩니다. 경로를 기반으로 요청을 하위 도메인으로 리디렉션하도록 S3의 리디렉션 규칙을 구성하는 방법이 있습니까?

답변

0

하위 도메인으로 리디렉션한다는 사실은 별 문제가 아니며 "경로를 기반으로"는 S3의 라우팅 규칙을 리디렉션하는 방법과 거의 같습니다.

<RoutingRules> 
    <!-- example.com/blog --> 
    <RoutingRule> 
     <Condition> 
      <!-- no/goes here --> 
      <KeyEquals>blog</KeyEquals> 
     </Condition> 
     <Redirect> 
      <ReplaceKeyWith/> <!-- nothing --> 
      <Protocol>http</Protocol> 
      <HostName>blog.example.com</HostName> 
     </Redirect> 
    </RoutingRule> 
    <!-- example.com/blog/* --> 
    <RoutingRule> 
     <Condition> 
      <!-- note the/is after, not before, blog --> 
      <KeyPrefixEquals>blog/</KeyPrefixEquals> 
     </Condition> 
     <Redirect> 
      <ReplaceKeyPrefixWith/> <!-- nothing --> 
      <Protocol>http</Protocol> 
      <HostName>blog.example.com</HostName> 
     </Redirect> 
    </RoutingRule> 
</RoutingRules> 

http://docs.aws.amazon.com/AmazonS3/latest/dev/HowDoIWebsiteConfiguration.html#configure-bucket-as-website-routing-rule-syntax