Я заметил Amazon S3 Redirect rule - GET data is missing, но после выполнения принятого ответа мои параметры запроса по-прежнему не сохраняются.Правило перенаправления Amazon S3 - Сохранение запросов Params
У меня есть сайт, который использует React и React Router, то есть у меня есть несколько URL-адресов, которые загружают одинаковые HTML и JS, а затем JS определяет, какую часть приложения загружать на основе URL-адреса.
Например:
/Foo,/бар,/Baz все должны загрузить index.html, который загружает bundle.js. Затем bundle.js просматривает URL-адрес и перенаправляет какой-либо компонент React (также в bundle.js).
Однако в S3 нет файла foo, bar или baz, только index.html. То, что я хочу сделать, - это когда я получаю 404, перенаправляю на/#!/{URL} (например./Foo перенаправление на/#!/Foo). Это отлично работает с моим правилом перенаправления (ниже). Тем не менее, я также хочу привести параметры запроса со мной (например,/foo? Ping = pong перенаправляет на/#!/Foo? Ping = pong), но вместо этого/foo? Ping = pong просто перенаправляет на/#!/Foo.
Вот мои правила переадресации:
<RoutingRules>
<RoutingRule>
<Condition>
<HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<Protocol>http</Protocol>
<HostName>www.mydomain.com</HostName>
<ReplaceKeyPrefixWith>#!/</ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule>
</RoutingRules>
Любые идеи по каким-то образом я могу добиться этого? В идеале, без необходимости менять что-то в S3/CloudFront каждый раз, когда я добавляю новую страницу?
Из любопытства, работает '/ foo /? Ping = pong', как и следовало ожидать? (добавление конечной косой черты перед '?') –
Перекрестный пост ... https://stackoverflow.com/questions/20751301/how-can-i-get-query-strings-in-my-amazon-s3-static -website – doublejosh