У меня возникла проблема на многих моих сайтах, которые полагаются на S3 как источник для Cloudfront. Однако у меня возникают проблемы с разрешением нескольких доменов (вместо глобального *
).AWS: Как разрешить несколько доменов в конфигурации S3 CORS?
Я следовал документации here (первая конфигурация). И нашел несколько других случайных ответов SO или форума здесь и там (вторая конфигурация)
Любая помощь приветствуется.
У меня есть установки CORS правила, которые выглядят как обе следующие:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>https://example.com</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
<CORSRule>
<AllowedOrigin>http://example.com</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
<CORSRule>
<AllowedOrigin>https://staging.example.com</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
<CORSRule>
<AllowedOrigin>http://example.dev</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
И
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>https://example.com</AllowedOrigin>
<AllowedOrigin>http://example.com</AllowedOrigin>
<AllowedOrigin>https://staging.example.com</AllowedOrigin>
<AllowedOrigin>http://example.dev</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
я получаю ошибку шрифта происхождения на всех сайтах кромеhttps://example.com
:
Шрифт от источника 'http://CLOUDFRONTURL' был заблокирован от загрузки по правилам совместного использования ресурсов Cross-Origin: заголовок Access-Control-Allow-Origin отсутствует на запрошенном ресурсе. Origin 'http://example.dev', следовательно, не допускается.
И
шрифт из происхождения 'http://CLOUDFRONTURL' был заблокирован нагружении политики Cross-Origin совместного использования ресурса: 'Access-Control-Allow-Origin' заголовок имеет значение 'https://example.com', что не соответствует заданному происхождению. Origin 'http://example.dev', следовательно, не допускается.
Является ли дистрибутив CloudFront настроенным на белый список заголовка 'Origin'? –
@ Michael-sqlbot Я не знаю, где это проверить. Редактирование Origin не дает ничего, связанного с заголовком запроса заголовка whitelisting. – Dez
Это настройка поведения кэша, а не настройка источника; см. http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html#header-caching-web –