Pidder Lüng: mod_rewrite und multiviews

Beitrag lesen

Ein .html reicht.

müssten da nicht bei meinem Beispiel, direkter Link auf eine *.en, zusätzlich die Endung en beim Server festgelegt werden, damit jeder Browser verlässlich weiß was er mit einer *.en machen soll (wenn ich es recht erinnere waren Opera da immer besonders anspruchsvoll)?

Browser, die den Datentyp anhand der URL bestimmen und nicht anhand dessen, was der Server ihnen sagt, kann man eigentlich eh in die Tonne treten, denn definitionsgemäß ist der Inhalt der URL in dieser Hinsicht irrelevant. Und insbesondere im hier vorliegenden Fall sind Fehldeutungen ganz und gar unmöglich - beim Typ application/octet-dingens wäre das beispielsweise etwas anders.
Ich kann mir nicht vorstellen, daß ausgerechnet Opera derartigen Mist veranstalten soll (aber wie heißt es doch: Nichts ist unmöglich). Und selbst wenn: Diese Form von Protokollvergewaltigung würde ich schon alleine aus Prinzip nicht unterstützen.

Die Dateiendungen werden vom Server benutzt, um der Datei verschiedene Attribute zuzuordnen. Dem Kürzel .html ist der Typ "text/html" zugeordnet, dem Kürzel "en" die Sprache Englisch.
".html.en" bedeutet also "englische Datei mit HTML-Inhalt" und genau diese Information sendet der Server dem Browser, separat und protokollgemäß mittels Content-Type (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17) und Content-Language (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.12).  Irgendwelche Wahrsagerei auf Basis der URL ist da beim Browser nicht mehr nötig.

Beide Zuordnungen sind normalerweise bereits ab Werk in der Serverkonfiguration vorhanden (wären sie es bei Dir nicht, würde die automatische Wahl nicht funktionieren).

Es hilft in Hinsicht auf das, was der Server dem Browser mitteilt, auch nichts, ".en" noch "text/html" zuzuordnen (oder ".html" doppelt anzugeben). Dann hast Du halt zweimal das Attribut "text/html" vergeben, die Content-Type-Zeile wird aber trotzdem nur einmal versandt.

Kurz: Servereinstellung sind vollkommen zwecklos, eine Unterstützung von kaputten Browsern fragwürdig.

Kann jetzt per mod_rewrite diese xy.html.en.html wieder als xy.html ausgeben werden

a) Das macht keinen Sinn. Wenn Du explizit _über die URL_ eine Sprachversion anforderst, dann sollte die URL auch diese Sprachversion wiederspiegeln.

Das wäre sehr wohl sinnvoll. Andernfalls hätte ich drei Adressen auf eine Seite, das kann allerdings "hässlich" sein,

Wie gesagt, Geschmacksfragen. Ich würde auch eher annehmen, daß meine Besucher sich mit dem Inhalt meiner Seiten beschäftigen, anstatt über die URL zu diskutieren.
Letztere braucht man nur zwei Sekunden zum Ansteuern einer Seite, und für diesen Zweck sollte sich verständlich und einprägsam sein - das ist bei .html.en meiner Ansicht nach durchaus gegeben, bei "Rufe .html auf, klicke auf "English" und Du erhälst die englische Version; das mußt Du aber bei jedem Aufruf machen"..naja.

zumal bei einem sonst einsprachigem Projekt.

Und? Ist doch toll, daß Du eine Seite in mehreren Sprachen anbietest? Du bist sozusagen international aufgestellt. Andere Firmen gehen mit so einer Aussage auf weltweiten Kundenfang ("we value our international customers"), Du versuchst sie zu verstecken.

Es macht eben weniger Sinn, wenn ein anderssprachiger Besucher einen Link auf die Sprachversion setzt, genau solche Dinge möchte ich derzeit vermeiden,

Im Hinblick auf das Weitergeben von Adressen magst Du teilweise Recht haben. Allerdings möchte ich da entgegnen, daß sicherlich eine ganze Reihe Besucher wissen, daß sie die Adresse einer [englischen] Seite weitergeben: Schließlich haben sie ja erst eine [deutsche] geliefert bekommen und mußten sich die [englische] explizit hervorholen.
Weiterhin bietest Du ja wohl auf der englischen Seite auch einen Verweis auf die Deutsche an, oder etwa nicht? Es kann sich also niemand verlaufen.

Und eine Gegenfrage: Warum muß dieser anderssprachige Besucher jedesmal über die Standardadresse kommen, warum darf er nicht gleich die im genehme Seite ansteuern?

Du spielst hier anscheinend irgendwie Deine Bequemlichkeit gegen die der Besucher aus. Aber sind die Besucher nicht doch ein wenig Deine Zielgruppe?

Ich würde momentan wohl eher auf den Komfort einer Sprachumschaltung verzichten oder etwas per JavaScript anbieten,

Deine Entscheidung. Technisch kompliziertere Spezialanfertigungen sind aber nicht unbedingt besser. Insbesondere bei weitläufigen Anwendungen wie offenen Netzwerken öffnet man damit Problemen Tür und Tor.

Du versuchst momentan, ein von vielen Leuten ausgearbeitetes Konzept aus den Angel zu hebeln und durch ein (deiner einzelnen Meinung nach) viel besseres zu ersetzen.
Du versuchst auch (bzw. es läuft darauf hinaus), ein simples Funktionsprinzip durch eine kompliziertere Variante zu ersetzen.

Willst Du das trotzdem machen: Benutze ein Formular mit einem einzelnen <input type="submit" name="lang" value="English">. Dann wirst Du allerdings Deine beiden HTML-Seiten durch ein Skript ersetzen müssen. Aus Verwaltungssicht und möglicherweise auch aus gestalterischer extrem hässlich - aber "hässlich" ist ja wie gesagt Geschmackssache.
Die anderssprachigen Dateien werden auch von keiner Suchmaschine indiziert werden können, da Du Dich ja weigerst, eine feste URL rauszurücken.

Beglückwünschen würde ich Dich für diese Wahl ganz und gar nicht. Das ist Pfuscherei.

Pidder Lüng