Ho notato Amazon S3 Redirect rule - GET data is missing ma dopo aver seguito la risposta accettata i miei parametri di query non vengono ancora conservati.Regola di reindirizzamento Amazon S3 - Conservazione di query Params
Ho un sito che utilizza React e React Router, nel senso che ho diversi URL che caricano HTML e JS identici e quindi il JS calcola quale parte dell'applicazione caricare in base all'URL.
Ad esempio:
/foo,/bar,/baz tutto dovrebbe caricare index.html, che carica bundle.js. Quindi bundle.js osserva l'URL e le rotte verso alcuni componenti React (anche in bundle.js).
Tuttavia nessun file foo, bar o baz esiste in S3, solo index.html. Quello che voglio fare è quando ottengo un 404, reindirizza a/#!/{URL} (ad es./Foo reindirizza a/#!/Foo). Funziona bene con la mia regola di reindirizzamento (sotto). Tuttavia, voglio anche portare parametri di query con me (ad es./Foo? Ping = pong reindirizza a/#!/Foo? Ping = pong) ma invece/foo? Ping = pong semplicemente reindirizza a/#!/Foo.
Qui sono le mie regole di reindirizzamento:
<RoutingRules>
<RoutingRule>
<Condition>
<HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<Protocol>http</Protocol>
<HostName>www.mydomain.com</HostName>
<ReplaceKeyPrefixWith>#!/</ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule>
</RoutingRules>
tutte le idee su qualche modo per raggiungere questo obiettivo? Idealmente senza dover cambiare qualcosa in S3/CloudFront ogni volta che aggiungo una nuova pagina?
Per curiosità, '/ foo /? Ping = pong' funziona come previsto? (aggiungendo una barra finale prima del '?') –
Cross post ... https://stackoverflow.com/questions/20751301/how-can-i-get-query-strings-in-my-amazon-s3-static -website – doublejosh