Zur Navigation

Nur bestimmte Url Form mit ? in url nicht umleiten

1 Heiko (Gast)

Hallo,

folgendes Problem:

Ich habe eine URL in der Form www.example.com/index.php

Wenn die URL eben exakt so aufgerufen wird, soll Sie nach www.example.com/ umleiten. Soweit bekomme ich das hin. :)

Jetzt habe ich aber exakt o.g. Url, also example.com/index.php?k=mich_nicht

Letztere Url darf nicht umgeleitet werden, weil Sie eben ein ? in der URL enthält ...

Das ich in der Rule ein ! für nicht verwenden muss ist soweit klar, aber den Rest bekomme ich nicht gebacken.
Kann mir da jemand hilfreich zur Hand gehen?

Danke und schönen Sonntag Abend noch,
Heiko

05.06.2016 22:56

2 Jörg Kruse

Probier mal so:

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^index\.php$  http://www.example.com/ [L,R=301]

Die Bedingung besagt, dass der Query String (Teil der URL nach dem "?") leer sein muss.


Edit:

ggf. braucht es noch eine weitere Bedingung, damit hier keine Endlosweiterleitung produziert wird, wenn http://www.example.com/ intern wieder auf http://www.example.com/index.php gemappt wird:

RewriteCond %{THE_REQUEST} /index\.php
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^index\.php$  http://www.example.com/ [L,R=301]

06.06.2016 08:50 | geändert: 06.06.2016 08:56

3 Heiko (Gast)

Hallo Jörg,

vielen vielen Dank!

Lösung 2 funktioniert perfekt!
RewriteCond %{THE_REQUEST} /index\.php
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^index\.php$  http://www.example.com/ [L,R=301]

07.06.2016 09:34

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]