Zur Navigation

301 Weiterleitung

1 Ralf (Gast)

Hallo,

ich habe da ein Problem, für das ich bisher leider noch nirgendwo
eine Lösung gefunden habe. Durch einen Fehler in meinem Shop
findet man bei google manche Artikel 2 beziehungsweise einige
sogar unter 3 verschiedenen Url's.

1. www.xxxx.de/product_info.php?products_id=82

2. www.xxxx.de/product_info.php?cPath=31_35&products_id=82

3. www.xxxx.de/product_info.php?&products_id=82

Nummer 2+3 sollen nun mit einer 301 Umleitung auf Url Nr. 1 umgeleitet
werden. Und nun stellt sich mir die Frage was genau ich in die htaccess
eintragen muss?

Gruß Ralf

30.09.2007 16:20

2 Jörg Kruse

Hallo Ralf,

wenn du Modrewrite nutzt, kannst du in einer RewriteCond den Query String auswerten und den relevanten Teil in der RewriteRule wieder aufgreifen

RewriteEngine on

RewriteCond %{QUERY_STRING} (products_id=[0-9]+)
RewriteRule product_info.php http://www.xxxx.de/product_info.php?%1 [R=301]

01.10.2007 07:01

3 Ralf (Gast)

Hallo Jörg,

erstmal danke für Deine Antwort. Ich habe das jetzt mal so
versucht, und web-sniffer hat dann auch gemeldet das es so
funktioniert. Das Problem dabei ist jetzt allerdings, das sich die
Ladezeit extrem in die Länge gezogen hat. Der direkte Aufruf
der Index, der Kategorien und Unterkategorien, sowie der Agb
u.s.w. ging so schnell wie immer. Sobald man dann aber direkt
auf einen Artikel klickt, also direkt einen Artikel aufrufen möchte,
dauert es ewig bis dieser erscheint. Ich habe mehrfach versucht
einzelne Artikel ( sowohl direkt im Shop, als auch über google )
aufzurufen, aber selbst nach 3-4 Min. hat das nicht geklappt.

Grundsätzlich funktioniert es also, nur das sich die Ladezeit so
extrem verlängert, das man es so noch nicht einsetzten könnte.

Kann man den Code noch irgendwie verändern, oder würde es
vielleicht besser ( also schneller ) gehen, wenn man versucht eine
Änderung direkt in der Php Datei zu machen?

Gruß Ralf

01.10.2007 16:44

4 Jörg Kruse

Hallo Ralf,

so scheint es in eine Endlosschleife zu laufen, man muss hier wohl noch die RewriteCond abändern, so dass diese nur die zu ändernden Query Strings erfasst - probier es mal so:

RewriteEngine on

RewriteCond %{QUERY_STRING} .+(products_id=[0-9]+)
RewriteRule product_info.php http://www.xxxx.de/product_info.php?%1 [R=301]

01.10.2007 17:12 | geändert: 01.10.2007 17:13

5 Ralf (Gast)

Hallo Jörg,

super danke schön!!!
Ich habe das gleich gestern Abend so eingebaut, und es hat auch
funktioniert, mehrere Kontrollen haben das ergeben. Es werden
aktuell nur die Artikel mit dem Link Nr. 1 ausgelesen, und nicht wie
bisher die anderen auch noch zusätzlich. Dann denke ich auch das
die anderen ( doppelten ) Links hoffendlich recht schnell aus den
Sumas verschwinden werden. Hätte nicht gedacht dass das nur so
ein "kleiner" Code ist, denn ich habe schon Wochen nach einer
Lösung gesucht, nur bisher hat leider nichts davon richtig funktioniert.
Also nochmals Danke !

Gruß Ralf

02.10.2007 22:34

6 Ralf (Gast)

Hallo Jörg,

ich hätte da nochmals eine Frage zu diesem Thema. Nachdem ich
die Änderungen gemacht hatte, hat ja alles funktioniert, nur sind
mir jetzt bei Tante G neue Url's aufgefallen, die auch vorher noch
nicht da gewesen sind. Diese müssen also nach dieser Änderung
oder nach der anderen -Problem mit 302/404 Weiterleitung- entstanden
sein. Ich habe -bis jetzt- rund 50 neue Url's bei G. gefunden, alle
nach dem gleichen Schema, und alle führen beim Anklicken auf die
Startseite. Die Url's lauten immer so...

www.xxx.de/index.php?filter_id=58

Nur die Nummer hinter "filter_id=" ist immer einen andere.

Weisst Du vielleicht wodurch das Problem entstanden sein könnte?
Es muss ganz klar etwas mit den letzten Änderungen zu tun haben,
danach habe ich auch nichts mehr am Shop selber gemacht.

Gruß Ralf

08.11.2007 21:50

7 Jörg Kruse

Hallo Ralf,

die in Beitrag 4 aufgeführte Rule kann weder diese URLs erzeugen noch deren Weiterleitung auf die Startseite. Was hast du denn sonst noch in der .htaccess stehen?

Die URLs könnten auch durch eine fehlerhafte Verlinkung entstanden sein

08.11.2007 22:04

8 Ralf (Gast)

Hallo Jörg,

in meiner .htaccess steht eigendlich nicht viel mehr drinn. Hier ist
mal der Inhalt....

RewriteEngine on

RewriteCond %{HTTP_HOST} !^www\.xxxxxx\.de$
RewriteCond %{REMOTE_ADDR} !^85\.13\.128
RewriteRule ^(.*)$ http://www.xxxxxx.de/$1 [L,R=301]
RewriteCond %{QUERY_STRING} .+(products_id=[0-9]+)
RewriteRule product_info.php http://www.xxxxxx.de/product_info.php?%1 [R=301]

Den unteren Teil hatte ich halt nach der Beschreibung ergänzt, der
Rest steht dann schon länger drinn. Die neuen Url's stehen bei G.
auch so drinn das man nicht sofort erkennen kann, um welchen
Artikel es geht, dass das überhaupt Artikel Id's sind, habe ich auch
erst vorhin bemerkt. Bei G. sieht der Eintrag -bis jetzt 48St.- so
aus....

Shop Titel
-----------
Description -aber die von der Indexseite-
www.xxx.de

Wenn Du bei einem normalen Artikel nachschaust, hast Du natürlich
den Artikelnamen oben als Titel, und einen Teil der Beschreibung als
Description, aber nicht die von der Indexseite.

Gruß Ralf

08.11.2007 22:32

9 Jörg Kruse

Aus dem Inhlt der .htaccess kann ich nicht erkenne, wie solche URLs daraus erzeugt werden könnten. Ist es möglich, dass es irgendwo Links auf diese URLs gibt denen Google dann gefolgt ist?

Was die Weiterleitung anbelangt, besteht diese im Effekt ja in der Entfernungg des Query Strings. Falls die erste Rule hierfür verantwortloch sein sollte, kannst du versuchen den Query String durch ein QSA-Flag wieder an die URL zu hängen

RewriteCond %{HTTP_HOST} !^www\.xxxxxx\.de$
RewriteCond %{REMOTE_ADDR} !^85\.13\.128
RewriteRule ^(.*)$ http://www.xxxxxx.de/$1 [L,R=301,QSA]

08.11.2007 23:31

10 Ralf (Gast)

Hallo Jörg,

irgendwelche Links kann es bei google nicht geben, da dieses
Problem noch ganz neu ist, sonst wäre mir das schon viel früher
aufgefallen. Der erste Teil der .htaccess kann eigendlich auch nicht
dafür verantwortlich sein, denn dieser ist schon recht lange
vorhanden, das wäre mich auch sonst schon längst aufgefallen.
Ich werde es dann einfach mal QSA-Flag versuchen, und zusätzlich noch
genau prüfen, ob das vielleicht nicht doch mit einer älteren Änderung
zu tun haben könnte -habe mir manche Dinge auch machen lassen-,
die sich aber erst jetzt bemerkbar gemacht hat.

Dann hätte ich noch eine grundsätzliche Frage an Dich. Bei der 301
Weiterleitung dauert es ja offensichtlich recht lange bis die doppelten
Artikel aus dem Index verschwinden, wäre es da nicht ggf. besser
wenn statt der Weiterleitung einfach eine 404 gesendet wird? Ich
hatte ja in einem anderen Betrag etwas wegen der 404 Weiterleitung
gefragt, und die meisten Artikel um die es da ging sind schon aus
dem Index, während die mit der 301 Weiterleitung alle noch drinn
sind.

Gruß Ralf

10.11.2007 22:18