Ich bemerkte Amazon S3 Redirect rule - GET data is missing, aber nach der Annahme der akzeptierten Antwort werden meine Abfrageparameter noch nicht erhalten.Amazon S3 Redirect-Regel - Query Params beibehalten
Ich habe eine Website, 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, die bundle.js lädt. Dann beobachtet bundle.js die URL und routet zu einer React-Komponente (auch in bundle.js).
Jedoch existiert keine foo, bar oder baz Datei in S3, 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 zu/#!/Foo? Ping = pong um), stattdessen wird/foo? Ping = pong nur nach/#!/Foo umgeleitet.
Hier sind meine Umadressierungsregel:
<RoutingRules>
<RoutingRule>
<Condition>
<HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<Protocol>http</Protocol>
<HostName>www.mydomain.com</HostName>
<ReplaceKeyPrefixWith>#!/</ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule>
</RoutingRules>
Irgendwelche Ideen auf irgendeine Weise ich dies erreichen können? Idealerweise ohne etwas an S3/CloudFront ändern zu müssen, wenn ich eine neue Seite anlege?
Aus Neugier, funktioniert '/ foo /? Ping = Pong' wie erwartet? (einen Schrägstrich vor dem '?' hinzufügen) –
Cross-Post ... https://stackoverflow.com/questions/20751301/how-can-ig-query-strings-in-my-amazon-s3-static -Website – doublejosh