Hallo,
RewriteRule ^de/(.+) /index.php?lang=de&path=$1
gibt die index.php komplett ohne Formatierung und Bilder wieder.
wenn du die eingebundenen Bilder und Stylesheets relativ adressierst, ja.
Dein Browser fordert /de/blah an. Der Server setzt das intern auf /index.php?lang=de&path=blah um.
In diesem HTML-Dokument wird ein Bild, z.B. logo.png, eingebunden, das relativ adressiert ist. Der Browser fordert es nun unter /de/logo.png an, denn er ist ja überzeugt, auch das HTML-Dokument aus dem Verzeichnis /de abgerufen zu haben.
Wenn ich allerdings hinter die letzte Zeile [R] schreibe, sodass die neue URL auch im Browser angezeigt wird, dann funktionierts einwandfrei.
Klar. :-)
Eigentlich sollte die [R]-Flag doch nur die Anzeige beeinflussen, aber im Hintergrund hat die doch sonst keine Funktion?!
Oh, da hast du aber etwas *gründlich* missverstanden! Die Anzeige in der Browser-Adresszeile ist nur ein Nebeneffekt. Tatsächlich ist es so, dass beim Rewriting ohne [R] der Server die "Umleitung" ausschließlich intern selbst macht und der Browser nichts davon "weiß", während er mit dem [R] gar nichts in der Art tut, sondern stattdessen nur dem Browser sagt: Versuch's nochmal unter einer anderen Adresse.
Scheinbar klappen ohne die Flag aber auch die Eibindung von CSS und Pics, die sich in Unterverzeichnissen befinden, nicht mehr. Jemand ne Idee?
Wenn du ein Rewriting machst, das Verzeichnisse anders erscheinen lässt, solltest du eingebundene Ressourcen immer absolut adressieren (oder konkret ins Rewriting mit einbeziehen).
So long,
Martin
Wie kann es sein, dass ich von 100 Gramm Schokolade zwei Kilo zunehme?