Amazon S3-Umleitungsregel - Abfrageparameter beibehalten

Ich bemerkteAmazon S3-Umleitungsregel - GET-Daten fehlen aber nachdem ich der akzeptierten Antwort gefolgt bin, werden meine Abfrageparameter immer noch nicht beibehalten.

Ich habe eine Site, die React and React Router verwendet. Das heißt, ich habe mehrere URLs, die identisches HTML und JS laden. Anschließend ermittelt der JS anhand der URL, welcher Teil der App geladen werden soll.

Beispielsweise

/ foo, / bar, / baz sollten alle index.html laden, wodurch bundle.js geladen wird. Dann beobachtet bundle.js die URL und leitet zu einer React-Komponente weiter (auch in bundle.js).

In S3 gibt es jedoch keine foo-, bar- oder baz-Datei, sondern nur index.html. Was ich tun möchte, ist, wenn ich eine 404 erhalte, Weiterleitung zu / #! / {URL} (z. B. Weiterleitung von / foo zu / #! / Foo). Dies funktioniert gut mit meiner Weiterleitungsregel (unten). Ich möchte jedoch auch Abfrageparameter mitnehmen (z. B. / foo? Ping = pong Weiterleitungen zu / #! / Foo? Ping = pong), aber stattdessen / foo? Ping = pong nur Weiterleitungen zu /#!/foo

Hier sind meine Weiterleitungsregeln:

<RoutingRules>
    <RoutingRule>
        <Condition>
            <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
        </Condition>
        <Redirect>
            <Protocol>http</Protocol>
            <HostName>www.mydomain.com</HostName>
            <ReplaceKeyPrefixWith>#!/</ReplaceKeyPrefixWith>
        </Redirect>
    </RoutingRule>
</RoutingRules>

Irgendwelche Ideen, wie ich das erreichen kann? Idealerweise ohne dass ich jedes Mal, wenn ich eine neue Seite hinzufüge, etwas in S3 / CloudFront ändern muss?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage