globestern hat geschrieben:ich möchte domain.de/bla nach domain.de/index.php?123 weiterleiten wichtig: es soll nur /bla weitergeleitet werden andere unterseiten sind nicht betroffen und sollten normal weiterlaufen!
zusätzlich soll ich noch domain.nl/bla nach domain.nl/index.php?321 weiterleiten
Das sind schonmal zwei Fälle mit zwei Zielen. Du hast nur einen Regelsatz mit exakt einem Ziel. Kann also nicht so laufen, wie du wünschst.
der HTTP_HOST müsste erkannt werden und geprüft ob .nl / .de
das passiert ja mit:
Code: Alles auswählen
RewriteCond %{HTTP_HOST} !^www\.domain\.tld$ [NC]
Nein, damit prüfst du, ob HTTP_HOST nicht ww
w.domain.tld entspricht - Betonung auf nicht, wie der Bauchladen schon schrieb. Wenn etwas nicht rot ist, bedeutet das noch lange nicht, dass es grün ist. Es könnte genauso gut lila oder schwarz-weiß kariert sein.
So wäre es richtig:
RewriteCond %{HTTP_HOST} =ww
w.domain.nl
Beachte aber, dass dies nicht auf domain.nl (ohne www.) passt, was aber kein großartiges Problem wäre, wenn du vorher eine allgemeine nicht-www-nach-www-Umleitung hast.
Hast du das nicht und möchtest du beide Fälle, ww
w.domain.nl und domain.nl, benutze dies:
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.nl$
Code: Alles auswählen
RewriteRule ^/bla http://www.domain.tld/index.php?123[R=301,L]
klappt aber leider nicht, wo liegt der fehler?
Das ist nur ansatzweise richtig:
1. Du möchtest nur /bla behandeln, aber nicht /blafasel. Dein Muster ist aber lediglich vorne abgeschlossen (^), hinten ist es hingegen offen. Es passt daher auf alles, was mit /bla beginnt.
2. Ich nehme mal an, du hast diese Regel in einer .htaccess definiert. In der .htaccess prüft RewriteRule immer nur gegen relative Pfade. Dein Muster /bla ist jedoch wegen des führenden Schrägstriches ein absoluter Pfad, richtig wäre bla.
3. Zwischen der Ziel-URL und den mit der eckigen Klammer beginnenden RewriteRule-Optionen solltest du ein Leerzeichen setzen.
1. und 2. zusammen ergeben als richtiges Muster ^bla$ , also an beiden Enden abgeschlossen, vorne mit ^ (Textanfang) und hinten mit $ (Textende) und ohne führenden Schrägstrich.
Das Ganze machst du dann zweimal, einmal für die .nl-Domain, einmal für die .de-Domain.