Ich habe bemerkt Amazon S3 Redirect-Regel - GET-Daten fehlen aber nachdem ich die akzeptierte Antwort befolgt habe, werden meine Abfrageparameter immer noch nicht gespeichert.
Ich habe eine Site, die React und React Router verwendet, was bedeutet, dass ich mehrere URLs habe, die identische HTML und JS laden und dann die JS herausfinden, welcher Teil der App basierend auf der URL geladen wird.
Zum Beispiel:
/ foo, / bar, / baz sollten alle index.html laden, wodurch bundle.js geladen wird. Dann beobachtet bundle.js die URL und routet zu einer React-Komponente (auch in bundle.js).
Allerdings existiert in S3 keine foo, bar oder baz Datei, nur index.html. Was ich tun möchte ist, wenn ich einen 404 bekomme, umleitung zu / #! / {URL} (zB. / Foo leitet zu / #! / Foo um). Dies funktioniert gut mit meiner Weiterleitungsregel (unten). Allerdings möchte ich auch Abfrageparameter mitbringen (zB. / Foo? Ping = pong leitet nach / #! / Foo? Ping = pong um), stattdessen wird / foo? Ping = pong nur nach / #! / Foo. Hier sind meine Umleitungsregeln: Irgendwelche Ideen, wie ich das erreichen kann? Idealerweise ohne etwas in S3 / CloudFront ändern zu müssen, wenn ich eine neue Seite anlege?
Das Problem war, dass ich den Ursprung in CloudFront eingerichtet hatte, um Query-Strings nicht weiterzuleiten, also wenn S3 die Anfrage erhielt, würde es ohne die Abfrageparameter richtig umleiten. Sie finden diese Einstellung in CloudFront & gt; Verhaltensweisen & gt; Forward Query Strings.
Wenn du klare URLs haben möchtest, kannst du auch diesen Trick domain.com/foo/bar
Tags und Links redirect amazon-s3 amazon-web-services amazon-cloudfront react-router