S3 Как перенаправить все запросы на один и тот же ресурс?

Я думаю о хостинге сайта на S3. Содержание веб-страниц будет храниться в другом месте на нашем веб-сервисе. Поэтому S3 будет предоставлять только HTML-страницу, CSS и, что особенно важно, JS. Затем запросы AJAX будут извлекать данные и отображать их на веб-странице.

Примеры того, что я ищу

https://www.example.com/something/another/thing
routes to s3/mybucket/index.html

https://www.example.com/something
routes to s3/mybucket/index.html

https://example.com
routes to s3/mybucket/index.html

Поэтому вопрос в том, как я могу направить все запросы на один и тот же ресурс?

2 ответа

Решение

Наконец-то удалось разобраться. Использование ReplaceKeyPrefixWith на самом деле не перенаправляет страницу, а просто направляет ее к нужному месту назначения. Использование KeyPrefixEquals со значением "/" означает, что все запросы будут перенаправлены, кроме index.html.

<RoutingRules>
    <RoutingRule>
        <Condition>
            <KeyPrefixEquals>/</KeyPrefixEquals>
        </Condition>
        <Redirect>
            <ReplaceKeyPrefixWith>index.html</ReplaceKeyPrefixWith>
        </Redirect>
    </RoutingRule>
</RoutingRules>

Не могу сказать, что у меня большой опыт в этом, но это интересная идея для создания одностраничного веб-приложения. Взгляните на это для переадресации. Также рассмотрите возможность использования Cloudfront для обслуживания вашего CSS.

Другие вопросы по тегам