Tôi nhận thấy Amazon S3 Redirect rule - GET data is missing nhưng sau khi làm theo câu trả lời được chấp nhận, thông số truy vấn của tôi vẫn không được giữ nguyên.Quy tắc chuyển hướng Amazon S3 - Bảo tồn Params truy vấn
Tôi có một trang web sử dụng React và React Router, có nghĩa là tôi có một số URL tải giống hệt HTML và JS và sau đó JS tìm ra phần nào của ứng dụng để tải dựa trên URL.
Ví dụ:
/foo,/bar,/baz tất cả phải tải index.html, tải bundle.js. Sau đó bundle.js quan sát URL và các tuyến đường đến một số thành phần React (cũng trong bundle.js).
Tuy nhiên không có tệp foo, bar hoặc baz nào tồn tại trong S3, chỉ index.html. Những gì tôi muốn làm là khi tôi nhận được 404, chuyển hướng đến/#!/{URL} (ví dụ:/foo chuyển hướng đến/#!/Foo). Điều này làm việc tốt với quy tắc chuyển hướng của tôi (bên dưới). Tuy nhiên, tôi cũng muốn mang thông số truy vấn với tôi (ví dụ:/foo? Ping = pong chuyển hướng đến/#!/Foo? Ping = pong) nhưng thay vì/foo? Ping = pong chỉ chuyển hướng đến/#!/Foo.
Dưới đây là quy tắc chuyển hướng của tôi:
<RoutingRules>
<RoutingRule>
<Condition>
<HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<Protocol>http</Protocol>
<HostName>www.mydomain.com</HostName>
<ReplaceKeyPrefixWith>#!/</ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule>
</RoutingRules>
Bất kỳ ý tưởng về một số cách tôi có thể đạt được điều này? Lý tưởng nhất mà không cần phải thay đổi một cái gì đó trong S3/CloudFront mỗi khi tôi thêm một trang mới?
Hết sức tò mò, hoạt động như thế nào?/Foo /? Ping = pong' như mong đợi? (thêm dấu gạch chéo trước dấu '? ') –
Bài đăng chéo ... https://stackoverflow.com/questions/20751301/how-can-i-get-query-strings-in-my-amazon-s3-static -website – doublejosh