Как настроить параметры запроса в AWS CloudFront

У меня есть облачный интерфейс AWS перед корзиной S3, содержащей мое внешнее приложение (https://myapp.com). Когда я перехожу к https://myapp.com/experts?profession=carpenter через элементы навигации моего сайта (кнопка в данном случае), все работает нормально. Но когда я пытаюсь получить доступ к этому же URL-адресу, вручную введя URL-адрес из панели навигации браузера, возникает проблема. Параметры запроса исчезают, и только на панели навигации отображается следующий URL-адрес без параметров запроса https://myapp.com.com/experts.

Мой вопрос: как мне настроить облачный фронт AWS, чтобы я мог передавать параметры запроса?

Большое спасибо!

Дополнительное примечание: некоторые параметры строки запроса зарезервированы S3, и могут быть добавлены новые, которые вызовут проблемы с вашим приложением, поскольку они не предназначены для S3, но теперь, когда вы, он попытается интерпретировать любые совпадающие. Примеры общих слов, которые сломают ваше приложение, если они будут использованы здесь: location и select. Если вы собираетесь это сделать, рекомендуется называть параметры, начинающиеся с x-, а не x-amz, поэтому, например. ?x-profession=carpenter потенциально более надежен (хотя, по общему признанию, слово «профессия» похоже на то, что S3 вряд ли понадобится в будущем).

Michael - sqlbot 03.03.2019 23:42
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
8
1
7 472
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Для веб-распространений вы можете выбрать, хотите ли вы, чтобы CloudFront пересылал строки запроса в ваш источник, и, если да, следует ли кэшировать ваш контент на основе всех параметров или на основе выбранных параметров.

По умолчанию Cloudfront не пересылает строки запроса, чтобы повысить частоту попаданий в кэш.

Вы можете изменить эти параметры в определении поведения, как показано на снимке экрана ниже.

screenshot

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html

Теперь (12/2021) у AWS есть способ разные управлять этим в соответствии с ответом @lahiru-chandima.

emaV 06.12.2021 03:06

Теперь у AWS есть другой способ настройки, который выбран по умолчанию. Метод, который Себастьен упомянул в своем ответе, помечен как «Устаревшие настройки кеша».

поэтому мы должны выбрать Cache poilcy и политику запроса источника и выбрать AllViewer?

Chau Giang 11.08.2021 20:07

@ChauGiang Установка политики запроса источника на AllViewer достаточна для сохранения параметров запроса, но установка политики кэширования на Caching Disabled также имеет смысл, если вы обслуживаете динамический контент, где кэширование нежелательно.

Lahiru Chandima 12.08.2021 02:42

В дополнение к вышесказанному мне также пришлось добавить косую черту в конце запрошенного ресурса. Поэтому вместо .../newsletter/verify?id=1234 мне пришлось использовать .../newsletter/verify/?id=1234. Я считаю, что это связано с тем, как S3 разрешает путь к ресурсу, но я приветствую более конкретное объяснение.

John Galt 17.09.2021 16:31

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