Zur Navigation

URL mit htaccess weiterleiten

1 nicko (Gast)

Hallo,
ich bastel jetzt schon 3 Tage an einer Umleitung bzw. Weiterleitung,
und komme nicht weiter.
Ich möchte alte URLs auf neue URLs weiterleiten,damit diese nicht mehr in den Google Webmastertools erscheinen.
diese URL
http://www.meinedomain.de/index.php?content=datei.php&date=11.02.2011&site=31
soll an diese URL weitergeleitet werden
http://www.meinedomain.de/datei/11.02.2011/31
die Zahlen sollen Variablen sein, die sich verändern können

ich habe es so probiert
RewriteEngine on
RewriteRule ^index.php?content=datei.php&date=(.+)&site=([0-9]+)$  datei/$1/$2 [L,R=301]
aber das hat leider nicht funktioniert


das hat leider auch nicht funktioniert
RewriteCond %{QUERY_STRING} ^content=datei.php&date=(.+)&site=([0-9]+)$ [NC]
RewriteRule ^index\.php$  http://www.meinedomain.de/datei/$1/$2? [R=301,L] 

wäre sehr nett wenn mir jemand weiterhelfen könnte
Gruss
Nicko

24.03.2011 09:59

2 Jörg Kruse

Geklammerte Ausdrücke aus RewriteConds werden nicht mit $1, $2 etc. sondern mit %1, %2 etc. wieder aufgenommen.

RewriteCond %{QUERY_STRING} ^content=datei.php&date=(.+)&site=([0-9]+)$ [NC]
RewriteRule ^index\.php$  http://www.meinedomain.de/datei/%1/%2? [R=301,L] 

24.03.2011 20:51

3 nicko (Gast)

Vielen Dank

Jetzt hab ich noch ein Problem
Ursprünglich sahen meine URLs mal so aus
http://www.meinedomain.de/index.php?content=datei.php&date=11.02.2011&site=31


Irgendwann habe ich dann diese neuen,kurzen und einfacheren URLs eingeführt:

http://www.meinedomain.de/datei/11.02.2011/31

und dafür diese RewriteRule benutzt

Rule1
RewriteRule ^datei/(.+)/([0-9]+)$ index.php?content=datei.php&date=$1&site=$2 

Funktioniert auch einwandfrei



Allerdings existieren im Internet noch viele alte URLs, die ich nun auf die neuen URLs weiterleiten möchte und dafür diese Weiterleitung von Dir benutzen will

Rule2
 RewriteCond %{QUERY_STRING} ^content=datei.php&date=(.+)&site=([0-9]+)$ [NC]
RewriteRule ^index\.php$  http://www.meinedomain.de/datei/%1/%2? [R=301,L] 


Problem ist nur dass beide zusammen nicht funktionieren (Rule1 und Rule2)
Gibt es eine Möglichkeit dass man beide kombiniert oder wie macht man das ?

24.03.2011 21:26

4 Jörg Kruse

Problem ist nur dass beide zusammen nicht funktionieren (Rule1 und Rule2)

Wie genau äußert sich das "nicht funktionieren"?

Prinzipiell sollten Weiterleitungen in der htaccess Datei oberhalb der anderen Rules aufgeführt und mit einem L-Flag versehen sein (letzteres ist bei dir ja schon der Fall)

25.03.2011 08:00

5 nicko (Gast)

Wenn ich beide Rules zusammen in die htaccess schreibe,

RewriteCond %{QUERY_STRING} ^content=datei.php&date=(.+)&site=([0-9]+)$ [NC]
RewriteRule ^index\.php$  http://www.meinedomain.de/datei/%1/%2? [R=301,L] 
RewriteRule ^datei/(.+)/([0-9]+)$ index.php?content=datei.php&date=$1&site=$2


dann kann man die Seiten nicht mehr aufrufen,die Seite bleibt weiss und leer. Nur wenn ich dann eine von beiden Rules entferne geht es wieder

25.03.2011 08:46

6 Jörg Kruse

Es kommt aber keine Fehlermeldung? Möglich wäre eine Endlosweiterleitung - Firefox würde dann z.B. eine entsprechende Fehlermeldung von sich geben. Welchen Browser verwendest du beim Testen?

Einer Endlosweiterleitung könnte man vielleicht mit einer zusätzlichen Bedingung vorbeugen

RewriteCond %{THE_REQUEST} index\.php\?content=datei\.php&date=.+&site=
RewriteCond %{QUERY_STRING} ^content=datei.php&date=(.+)&site=([0-9]+)$ [NC]
RewriteRule ^index\.php$  http://www.meinedomain.de/datei/%1/%2? [R=301,L]

25.03.2011 18:47

7 nicko (Gast)

Vielen Dank,
mit diesem Code funktioniert es jetzt einwandfrei.
Was bewirkt die erste Zeile ??

25.03.2011 19:03

8 Jörg Kruse

Die erste Bedingung besagt, dass die weiterzuleitende URL im eigentlichen Request vorkommen muss. Die zweite Bedingung und das Muster der RewriteRule können sich dagegen auch auf eine rewritete URL beziehen.

25.03.2011 19:44

10 Forum

Ich habe die folgenden Beiträge von musikliebhaber11 und mir mal in einen eigenen Thread abgetrennt, da sie mit der Fragestellung dieses Threads nur noch sehr bedingt zu tun haben:

Anfragen umleiten und Anfragen als gelöscht melden

27.02.2012 10:19 | geändert von Jörg: 27.02.2012 10:21