Ich verwende S3, um eine JavaScript-Anwendung zu hosten, die HTML5 PushStates verwendet. Das Problem besteht darin, dass, wenn der Benutzer eine URL als Lesezeichen speichert, diese zu nichts aufgelöst wird. Ich muss in der Lage sein, alle URL-Anfragen zu akzeptieren und die Root index.html in meinem S3-Bucket bereitzustellen, anstatt nur eine vollständige Umleitung durchzuführen. Meine JavaScript-Anwendung kann dann die URL analysieren und die richtige Seite bereitstellen.
Gibt es eine Möglichkeit, S3 anzuweisen, index.html für alle URL-Anfragen bereitzustellen, anstatt sie umzuleiten? Dies ähnelt dem Einrichten von Apache zur Verarbeitung aller eingehenden Anforderungen durch Bereitstellung einer einzigen index.html, wie in diesem Beispiel gezeigt: https://stackoverflow.com/a/10647521/1762614. Ich möchte wirklich vermeiden, einen Webserver zu betreiben, nur um diese Routen zu verwalten. Es ist sehr verlockend, alles von S3 aus zu machen.
在 CloudFront 的帮助下,无需 URL hack 即可轻松解决该问题。