S3 버킷을 사용하여 정적 사이트 mydomain.com
을 호스팅합니다. 원래 블로그 콘텐츠 레이아웃은 S3 기본 도메인을 키 접두사 폴더로 리디렉션
지금 나는 blog
디렉토리 내부의 모든 블로그 콘텐츠를 유지
- index.html을
- 게시물/article.html이었다. 내가 mydomain.com 양동이에 호스팅 웹 사이트를 활성화
- 블로그/index.html을
- 블로그/게시물/article.html. S3's custom redirection rules을 사용하여 'blog'접두어가없는 이전 URL을 리디렉션하고 싶습니다. 예를 들어
mydomain.com/index.html
은mydomain.com/blog/index.html
으로 리디렉션되어야합니다.나는
<RoutingRules> <RoutingRule> <Condition> <KeyPrefixEquals>/</KeyPrefixEquals> </Condition> <Redirect> <ReplaceKeyPrefixWith>blog/</ReplaceKeyPrefixWith> </Redirect> </RoutingRule> </RoutingRules>
및
을 시도했지만 리디렉션 루프 (놀라운 일이 아니다)와 두 번째의 첫 번째 결과는 작동하지 않습니다.<RoutingRules> <RoutingRule> <Condition> <KeyPrefixEquals>mydomain.com/</KeyPrefixEquals> </Condition> <Redirect> <ReplaceKeyPrefixWith>mydomain.com/blog</ReplaceKeyPrefixWith> </Redirect> </RoutingRule> </RoutingRules>
<RoutingRules> <RoutingRule> <Redirect> <Protocol>https</Protocol> <HostName>mydomain.com</HostName> <ReplaceKeyPrefixWith>blog/</ReplaceKeyPrefixWith> <HttpRedirectCode>301</HttpRedirectCode> </Redirect> </RoutingRule> </RoutingRules>
참고 :
이 인해 너무 많은 리디렉션에 "리디렉션 루프를"발생을 방지하기 위해 "KeyPrefixNotEquals"와 같은 부정적인 조건을 지정하는 방법을 찾지 못했습니다. 첫 번째 리디렉션은 mydomain.com/blog이며, URL이 커질 때까지 mydomain.com/blog/blog 등으로 리디렉션됩니다. – dghubble