2014-04-07 12 views
8

Ich hosste eine statische Website mit Middleman auf CloudFront und S3 generiert. Ich möchte mehrsprachige Unterstützung hinzufügen und Mittelsmann ermöglicht es mir, den Inhalt zu lokalisieren und die englische Version unter /index.html und den übersetzten Inhalt zum Beispiel unter /sp/index.html zu haben.Cloudfront/S3: Server verschiedene Datei je nach Anfrage Header

Ich möchte in der Lage sein, den „Accept-Language“ Header in der Anfrage und entweder /index.html oder /sp/index.html auf diesem Server zu detektieren.

auf meiner Forschung Basierend ich keine Möglichkeit, dies zu tun mit S3 und Cloudfront, aber vielleicht haben euch eine Idee sehen kann?

Wenn es kein „richtiger und guter Weg“ dies mit Cloudfront und S3 zu tun, was die nächstbeste Alternative wäre? Derzeit denke ich daran, die Sprache in JavaScript zu erkennen und den Benutzer dann umzuleiten, wenn die Sprache nicht Englisch ist.

Grüße, Kim

+0

Sie können einen Proxy-Server vor dem Bucket einrichten und Umschreibbedingungen hinzufügen –

Antwort

2

Wie in den Kommentaren erwähnt werden Sie irgendeine Art von Schiedsrichter müssen die Request-Header und entweder umleiten oder dienen dynamische Inhalte lesen kann. S3 ist das Problem dort.

Cloudfront können forward the Accept-Language header to your origin server, und stellen Sie sicher, dass die Inhalte nur per-Sprache zwischengespeichert wird. Dieser Teil ist also kein Problem.

Wenn S3 Ihre Herkunft ist, dann haben Sie ein Problem, weil Sie Ihre Dateien statisch und nicht in der Lage sind, die eingehende Anforderung mit den Sprachinformationen zu verarbeiten. Ich empfehle nicht, die Sprache mit JavaScript zu erkennen. It's problematic.

Obwohl Cloudfront kann mit mehreren Ursprüngen (einer pro Sprache, in Ihrem Fall) so konfiguriert werden, es kann nicht auf diese zukunfts basierend auf Request-Header. Derzeit kann "Verhalten" nur dem URL-Pfad entsprechen. Ich vermute, dass sie irgendwann Kopfzeilenregeln einführen könnten, aber bis sie es tun (oder wenn Sie ein anderes CDN finden, das tut), befürchte ich, dass meine Antwort eine Antwort "du kannst nicht" sein wird.

Wie Ihre Website ist alles flach HTML, ich vermute, dass Sie in einer gewundenen Lösung nicht interessiert sind, die ..

Ich denke, die beste Wahl verschiedene Cloudfront Verhalten und dynamische Server-Skripte, etc. umfasst weit durch ein einfaches , Low-Tech-One -

Bieten Sie dem Besucher eine Auswahl an Sprache und erlauben Sie ihnen, Sprache von jeder Seite zu wechseln. Dies vermeidet auch Überraschungen - Wenn ich etwas auf Englisch google, aber ich spreche Spanisch, sollte ich die englische Seite sehen, die ich gegoogelt habe und dann auf Spanisch umschalten, wenn mir danach ist.

Verwandte Themen