В случае, если хостинг веб-сайтов включен для корзины, есть альтернативный способ добавить 301 перенаправление.
В соответствии с этим правила перенаправления описаны на уровне сегмента в XML-формате и могут быть указаны в свойствах сегмента через консоль AWS S3 (раздел «Статический хостинг»).
Полная документация о его синтаксисе в настоящее время может быть найдена здесь .
Этот подход удобен, когда у вас большие перемещения URL-адресов, поскольку проще управлять всеми перенаправлениями в одном месте. Например, можно определить правила перенаправления
<RoutingRule>
<Condition>
<KeyPrefixEquals>index.php</KeyPrefixEquals>
</Condition>
<Redirect>
<ReplaceKeyWith>index.html</ReplaceKeyWith>
</Redirect>
</RoutingRule>
<RoutingRule>
<Condition>
<KeyPrefixEquals>blog.php?id=21</KeyPrefixEquals>
</Condition>
<Redirect>
<ReplaceKeyWith>mysql-utf-8-database-creation-snippet.html</ReplaceKeyWith>
</Redirect>
</RoutingRule>
Похоже, это то же самое, что создание поддельных объектов и указание для них метаданных x-amz-website-redirect-location.
Плохая новость заключается в том, что в XML может быть не более 50 таких правил для одного сегмента.
И да, управлять XML не удобно. Но для меня этот способ проще в настоящее время. Опять же, потому что проще управлять всеми файлами в одном месте.
Этот XML-подход чрезвычайно полезен, когда вы, скажем, переименовали каталог с большим количеством страниц. В этом случае необходимо
создайте одно правило перенаправления для каталога, а не отдельное правило для каждой страницы внутри него. Например
<RoutingRule>
<Condition>
<KeyPrefixEquals>blog/</KeyPrefixEquals>
</Condition>
<Redirect>
<ReplaceKeyPrefixWith>it-blog/</ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule>
Согласно этому правилу example.com/blog/whatever
будет перенаправлен на example.com/it-blog/whatever
.
Еще одна полезная особенность такого подхода заключается в том, что он заменяет только префиксы. Так же, как и с каталогами, это возможно
перенаправить страницу, но сохранить параметры запроса. Это может быть подходящим, если есть некоторая обработка этого запроса JS
параметры. С метаданными x-amz-website-redirect-location вы, вероятно, потеряете их.
Как я уже говорил, написание и чтение XML может быть неудобным. Чтобы преодолеть это, я написал простой онлайн-инструмент в GWT, чтобы
преобразовать обычный текст с прежними и новыми URL в формат XML. Он использует
KeyPrefixEquals
предикат и выполнение ReplaceKeyPrefixWith
редирект.
Наконец, согласно документации ,
если хостинг веб-сайтов отключен, поддержка перенаправления не применяется для этого сегмента.