Wiedmann wrote:- Code: Select all
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.foobar\.net [NC]
RewriteRule ^/$ www.foobar.net/de/ [R]
Nicht ganz korrekt, aber der richtige Ansatz... danke vielmals!
So langsam kapiere ich mod_rewrite doch. Eine Frage ist allerdings immer noch offen: auf was genau bezieht sich der Pattern der RewriteRule, auf den gesamten Request, die volle URL mit ServerName oder nur auf den internen Teil der URL, also bspw. nur /index.php beim Aufruf von
www.foobar.net/index.html? Ich vermute Letzteres...
Naja, meine Rules sehen jetzt so aus:
- Code: Select all
RewriteEngine on
RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^www\.foobar\.net [NC]
RewriteRule ^/$ /de/ [R]
RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^www\.foobar\.net/[^/]+$ [NC]
RewriteRule ^.*$ /de/ [R]
Das fängt dann auch Requests auf beliebige Dateien im Root-Verzeichnis ab und leitet sie weiter.
Was ist hier eine korrekte Weiterleitung?
Eine die auf den gewünschten Ort weiterleitet?
Der Sinn dabei ist ja, dass das Rootverzeichnis als solches in diesem Fall nicht existiert, bzw. keinen Inhalt hat. Sinnvoll für den Besucher sind nur die Unterverzeichnisse für die verschiedenen Sprachen, also sollte das Rootverzeichnis auch nicht ansprechbar sein.
Das gleiche Problem besteht ja auch, wenn man aus irgendeinem Grund nicht index.html als Startseite haben will, sondern, was weiß ich, hallo.html (und eben nicht hallo.html in die Liste der indexdateien aufnehmen möchte)
Welchen plausieblen Grund sollte es geben, hier nicht den DirectoryIndex anzupassen. Da nimmt doch kein Mensch mod_rewrite dafür... (ausser du willst es passthrough haben)
Ja, hast recht, das war ein blödes Beispiel... Ich dachte ja auch dass man um mod_rewrite herumkommt und es eine wirklich einfache Lösung gibt.
Der plausible Grund liegt darin, dass das anpassen des DirectoryIndex nicht der Semantik entspricht. Man will ja nur in einem(!) Verzeichnis eine Weiterleitung auf eine bestimmte(!) Ressource hervorrufen. Selbstverständlich kann man dann auch den DirectoryIndex nur für dieses eine Verzeichnis ändern, aber sobald's dann etwas komplexer wird, reicht das schon nicht mehr.
Siehe mein Problem oder diverse Dokus zu mod_rewrite, Stichwort browser/tageszeitspezifische Startseiten...
Was meintest du mit passthrough? Dass es von anderen Rules weiterverarbeitet werden kann?