#amazon-web-services #amazon-s3 #amazon-cloudfront
#amazon-веб-сервисы #amazon-s3 #amazon-cloudfront
Вопрос:
Я развернул статический веб-сайт Angular на Amazon S3 и использовал для него Cloudfront. Когда я получаю доступ к странице по умолчанию myurl.com/
, все работает нормально, и я могу перемещаться по страницам. Но если я перейду на определенную страницу напрямую myurl.com/posts
, например, я получу отказ в доступе с помощью cloudfront. Если я делаю это с конечной точкой веб-сайта Amazon s3, я получаю ответ 404.
S3
Cloudfront
Комментарии:
1. Какую дополнительную информацию это дает вам? Как вы его настроили? Какую конечную точку вы используете website или standard bucket?
2. @ChrisWilliams Это не дает мне никакой дополнительной информации, кроме hostId и RequestID. Я использую конечную точку веб-сайта
Ответ №1:
В документации указано, что 403 будет возвращен в CloudFront по ряду причин. Одним из решений является The requested objects must exist in the bucket.
.
Поскольку вы пытаетесь получить доступ к несуществующему объекту, CloudFront может превратить это в 403, который вы получаете.
Вы должны попытаться получить доступ только к существующему ключу и настроить конечную точку s3 на использование документа об ошибке, когда страница не существует.
Комментарии:
1. Спасибо, я установил для документа об ошибке значение index.html в свойствах веб-хостинга, и это устранило проблему.
2. Нет проблем, хорошего дня
Ответ №2:
в моем случае я установил корневой объект по умолчанию, и все заработало, подождав около 10 минут, чтобы синхронизировать изменения настроек. http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html
Чтобы указать корневой объект по умолчанию с помощью консоли CloudFront:
Войдите в консоль управления AWS и откройте консоль Amazon CloudFront по адресу https://console.aws.amazon.com/cloudfront /.
В списке дистрибутивов на верхней панели выберите дистрибутив для обновления.
В области сведений о распространении на вкладке Общие нажмите Изменить.
В диалоговом окне Редактирование распространения в поле корневой объект по умолчанию введите имя файла корневого объекта по умолчанию.
Введите только имя объекта, например, index.html . Не добавляйте / перед именем объекта.
Чтобы сохранить изменения, нажмите Да, Редактировать.