mod_rewrite - Nicht korrekte Umleitung

gerd87

Erfahrenes Mitglied
Hallo,

ich möchte die index.php auf die index.html umleiten.
Dies funktioniert auch ganz normal.
Jetzt gibt es aber auch variable Adressen z.B. index.php?site=news
Diese würde ich dann zu news.html umleiten.
Es wird aber immer zu index.html umgeleitet, weil index.php in den anderen umleitungen auch vorkommt.
Kann man nicht die exakte adresse sagen, die umgeleitet werden soll?
 
Du meinst es wohl genau umgekehrt: „index.html“ soll auf „index.php“ beziehungsweise „news.html“ auf „index.php?site=news“ umgeleitet/umgeschrieben werden.
Code:
RewriteEngine   on
RewriteRule     index\.html$   index.php   [L]
RewriteRule     news\.html$    index.php?site=news   [L]
 
Ich meinte das scho richtig. Die Seite index.php hat ohne aufruf von Parameter keinen Inhalt, deshalb soll sie auf index.html umgeleitet werden.

Code:
RewriteEngine   on
RewriteRule     index\.php$     index.html   [L]
RewriteRule     news\.html$    index.php?site=news   [L]

Das Problem an der Sache ist, dass wenn ich news.html aufrufe, die Seite index.html erscheint. Ich möchte aber den Inhalt von index.php?site=news

Kennt jemand dafür eine Lösung?
 
Da sich das Ganze sonst im Kreis drehen würde, musst du die erste Regel mit einer Bedingung verknüpfen, nämlich der, dass der Query-String-Teil des URLs leer ist:
Code:
RewriteEngine   on
RewriteCond     %{QUERY_STRING}   ^$
RewriteRule     index\.php$       index.html   [L]
RewriteRule     news\.html$       index.php?site=news   [L]
 
Zurück