Seite 1 von 1

index.php zu / weiterleiten

Verfasst: 09.11.2011, 16:21
von marc77
Hallo,

leider sind mir solche URLs in den Index gerutscht.

www.tld.de/index.php?c=20
www.tld.de/index.php?c=19

usw.

Wenn ich folgendes in die htaccess schreibe

RewriteRule ^index.php$ https://www.tld.de/ [R=301,L]

funktioniert die Weiterleitung mit "index.php" aber nicht mit index.php?c=20

Wie müsste die htaccess ausehen, damit index.php?c=20 + index.php auf www.tld.de weitergeleitet wird?

Danke für Hilfe.

Verfasst:
von

Verfasst: 09.11.2011, 16:42
von mano_negra
ich glaube einfach ein fragezeichen hinter www.tld.de/

Code: Alles auswählen

RewriteRule ^index.php$ http://www.tld.de/? [R=301,L] 

Verfasst: 10.11.2011, 08:58
von marc77
danke, hat funktioniert :)

Verfasst: 03.12.2011, 12:03
von umwelt
marc77 hat geschrieben:danke, hat funktioniert :)
bitte?
hast du eine index.html? denn wenn die index.php die einzige "index"-datei ist, führt das zu einer schleife, weil der server intern immer auf die index.php verweist... so zumindest bei mir.

Hat jemand eine Idee, wie ich den aufruf example.com/index.php auf example.com umleite?

mit

Code: Alles auswählen

RewriteCond %{IS_SUBREQ} false
RewriteRule ^index.php$ http://www.example.com [L]
funktioniert's nämlich nicht...

könnte das an dem vorigen code liegen?

Code: Alles auswählen

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*) http://www.%{HTTP_HOST}/$1 [R=301,L]

Verfasst: 03.12.2011, 18:40
von Melegrian
umwelt hat geschrieben:mit

Code: Alles auswählen

RewriteCond %{IS_SUBREQ} false
RewriteRule ^index.php$ http://www.example.com [L]
funktioniert's nämlich nicht...
Bei mir funktioniert die Weiterleitung von

http:// localhost/index.php und
http:// localhost/index.php?abc=1

auf http:// localhost/ problemlos.

Code: Alles auswählen

RewriteRule ^index.php$ http://localhost/? [L,R=301]
Hast Du R für Redirect (Weiterleitung) am Zeilenende vergessen? Oder kommt der Fehler mit der Umleitung auf sich selbst bzw. mit den Endlosschleife, wenn Du eine Weiterleitung einfügst?

Noch eine Variante, die ebenfalls mit Localhost funktioniert:

Code: Alles auswählen

RewriteRule ^index.php$  /? [L,R=301]
Ich vermute nur mal so, wenn das R für Redirect fehlt, dann handelt es sich ja nur um eine Umschreibung (URL-Rewriting), jedoch um keine Weiterleitung. Der Server versucht dann für die umgeschriebene Seite index.php die in der Regel angegebenen Seite auszuliefern und dreht sich dabei stetig im Kreise, weil er in Konflikte gerät. Wenn Du wirklich nicht nur hier im Beispiel das R vergessen hast, dann könnte es zumindest so oder ähnlich sein.