В корзинах Amazon S3 могут размещаться статические веб-сайты, что очень, очень полезно и экономично по сравнению с размещением полноценного сервера. Он имеет функцию, где вы можете указать правила index.html, 404.html и перенаправления. Я спрашиваю о правилах перенаправления.
Есть ли способ заменить ключ и не перенаправить?
Этот пример ниже работает. Когда пользователь заходит на www.example.com, ему предоставляется страница index.html (и URL-адрес браузера не изменяется). Когда он запрашивает несуществующий URL-адрес, файл 404.html обслуживается (и URL браузера не изменяется) (это важно)
В приведенном ниже примере я указал правило перенаправления. Когда пользователь нажимает на это, URL браузера изменяется. Команда curl
показывает, что S3 отправляет обратно перенаправление 301. Хорошо. Это то, что говорит правило - (оно говорит Redirect
)
Но я не хочу перенаправлять все время. Иногда я хочу оставить URL-адрес в покое, но на другой странице. (аналогично тому, как на странице 404)
Практический пример:
- Если пользователь нажимает /products/475872.html, я хочу, чтобы он увидел страницу 475872.html (это всегда работает)
- Если пользователь нажимает / products / spiderman-action-figure, я хочу, чтобы он увидел страницу 475872.html, и не хочу, чтобы URL браузера изменялся.
На данный момент это не представляется возможным в S3. Является ли это возможным? Это мой вопрос.
{
"Bucket": "www.example.com",
"WebsiteConfiguration": {
"ErrorDocument": {
"Key": "404.html"
},
"IndexDocument": {
"Suffix": "index.html"
},
"RoutingRules": [
{
"Condition": {
"KeyPrefixEquals": "products/spiderman-action-figure"
},
"Redirect": {
"ReplaceKeyWith": "475872.html"
}
}
]
}
}
Соответствующий вопрос SO