Zur Navigation

Google Cache-Problem

1 Thor

Leider wird der Google-Cache meines Shops komplett zerschossen dargestellt. Die "stylesheet.css" wird auf einem anderen Pfad gesucht und auch die Bilder werden wegen einem falschen Pfad nicht angezeigt.
Kurios ist, Firefox zeigt den Google-Cache richtig an, nur der IE zerhackt mir alles.
Der Yahoo-Cache zeigt die Seite auch richtig an, ohne Fehler.
Sollte insofern nicht am OSCommerce Shop selbst hängen.
Damit meine User den Cache richtig dargestellt bekommen, möchte ich den mist umleiten.

Im Cache wird anstatt der richtige Pfad /shop/images/ noch zwei variable als Verzeichnis angehängt /shop/default.php/cPath/images/

RewriteRule ^shop/default.php/cPath/images/([^/]+)/images/ http://www.xx.de/shop/images/$1 [L,R=301]

funktioniert. Jedoch hat /images/ noch einige Unterverzeichnise und das funktioniert nur im ersten Verzeichnis.

RewriteRule ^shop/default.php/cPath/stylesheet.css http://www.xx.de/shop/stylesheet.css [L,R=301]

funktioniert teilweise. Versuche ich noch andere Pfade umzuleiten wie z.B.


RewriteRule ^shop/product_info.php/products_id/stylesheet.css http://www.xx.de/shop/stylesheet.css [L,R=301]

geht es nicht mehr.

Leider ist mein Wissen nicht ausreichend, dies zu lösen.

Gruß
Thorsten

19.10.2010 11:53

2 Jörg Kruse

Zitat von Thor
Leider wird der Google-Cache meines Shops komplett zerschossen dargestellt. Die "stylesheet.css" wird auf einem anderen Pfad gesucht und auch die Bilder werden wegen einem falschen Pfad nicht angezeigt.
Kurios ist, Firefox zeigt den Google-Cache richtig an, nur der IE zerhackt mir alles.

Zeigen sie denn den gleichen Quelltext an?

Versuche ich noch andere Pfade umzuleiten wie z.B.


RewriteRule ^shop/product_info.php/products_id/stylesheet.css http://www.xx.de/shop/stylesheet.css [L,R=301]

geht es nicht mehr.

Gibt es da eine Fehlermeldung, oder passiert gar nichts weiter (wenn du dei URL der CSS-Datei direkt aufrufst)?

Die Reihenfolge der Rules kann hier auch ausschlaggebend sein. Funktioniert die zuletzt genannte Rule, wenn sie ganz oben steht?

19.10.2010 12:40 | geändert: 19.10.2010 12:41

3 Thor

Hallo Jörg,

z.B. http://webcache.googleusercontent.com/search?sourceid=navclient&hl=de&ie=UTF-8&rlz=1T4GGLL_deDE312DE311&q=cache:http%3A%2F%2Fwww.netzwerkprodukte.glasfaserinfo.de%2Fshop%2Fdefault.php%2FcPath%2F27_40
schau dir den Cache mal mit IE8 an, der Pfad zu den Bildern ist falsch und die "stylesheet.css" wird auch nicht beachtet.
<base href= ist natürlich angegeben, wird aber anscheinend nicht geschluckt.

Kurzum, der Cache soll für den User wieder schön aussehen und möchte sie wieder auf den richtigen Pfad bringen.
Das Problem liegt eindeutig an IE8. Firefox und IE6 funktionieren.

19.10.2010 14:42

4 Jörg Kruse

Im Quelltext der Cache-Seite finden sich zwei base Tags - das erste ist wohl von Google selbst eingefügt und das zweite das originale base Tag; anscheinend verwendet Firefox (sowie auch Opera und Chrome) die letzte Angabe und der IE 7 / 8 die erste.

Hinsichtlich der Weiterleitung wären wie gesagt etwaige Fehlermeldungen und die Reihenfolge der Rules von Interesse.

19.10.2010 14:57

5 Thor

Hast mir schon weitergeholfen, die Reihenfolge geändert und es funktioniert

Bilder umleiten:
RewriteRule ^shop/default.php/cPath/images/boxes/([^/]+) http://xxx.de/shop/images/boxes/$1 [L,R=301]
RewriteRule ^shop/default.php/cPath/images/categories/([^/]+) http://xxx.de/shop/images/categories/$1 [L,R=301]
RewriteRule ^shop/default.php/cPath/images/infobox/([^/]+) http://xxx.de/shop/images/infobox/$1 [L,R=301]
RewriteRule ^shop/default.php/cPath/images/shadow/([^/]+) http://xxx.de/shop/images/shadow/$1 [L,R=301]
RewriteRule ^shop/default.php/cPath/images/icons/([^/]+) http://xxx.de/shop/images/icons/$1 [L,R=301]
RewriteRule ^shop/default.php/cPath/images/([^/]+) http://xxx.de/shop/images/$1 [L,R=301]

Einzelne Bilder umleiten:
RewriteRule ^shop/default.php/cPath/adresse.gif http://xxx.de/shop/adresse.gif [L,R=301]
RewriteRule ^shop/default.php/cPath/lockbox_100x40.gif http://xxx.de/shop/lockbox_100x40.gif [L,R=301]
RewriteRule ^shop/default.php/cPath/versand.jpg http://xxx.de/shop/versand.jpg [L,R=301]
RewriteRule ^shop/default.php/cPath/includes/languages/german/images/buttons/([^/]+) http://xxx.de/shop/includes/languages/german/images/buttons/$1 [L,R=301]

Stylessheet umleiten:
RewriteRule ^shop/default.php/cPath/stylesheet.css http://xxx.de/shop/stylesheet.css [L,R=301]

Das ganze war jetzt nur für die "Kategorien" und das ganze nochmal für die "Artikelbeschreibung" also "product_info.php/products_id/images/

Vielleicht gibt es eine "elegantere" Lösung dafür.

19.10.2010 17:00

6 Jörg Kruse

Die ersten fünf Weiterleitungen ließen sich auch noch zusammenfassen:

RewriteRule ^shop/default.php/cPath/images/([a-z]+)/([^/]+) http://xxx.de/shop/images/$1/$2 [L,R=301]

Das ganze war jetzt nur für die "Kategorien" und das ganze nochmal für die "Artikelbeschreibung" also "product_info.php/products_id/images/

Wenn der Rest gleich bleibt, könntest du folgende Zusammenfassung probieren:

RewriteRule ^shop/(default.php/cPath|product_info.php/products_id)/images/([a-z]+)/([^/]+) http://xxx.de/shop/images/$2/$3 [L,R=301]

19.10.2010 17:32

7 Thor

...ich bin dir zu tiefstem Dank verpflichtet.


noch ein kleines Google-Bot Problem:

/shop/products_new.php/page/4
/shop/products_new.php/148/page/3/language/page/4

hier verläuft sich der Bot da mehrere falsche externe Links darauf verweisen.
Wie kann ich hier den überflüssigen Teil (Fett) entfernen.

19.10.2010 19:57

8 Jörg Kruse

Ist das eine einzelne URL? das sollte so gehen:

RewriteRule ^shop/products_new\.php/148/page/3/language/page/4$ http://example.com/shop/products_new.php/page/4 [R=301,L]

19.10.2010 20:42

9 Thor

Morgen Jörg,

nein, sind verschiedene

RewriteRule ^shop/products_new\.php/148/page/3/language/page/4$ http://example.com/shop/products_new.php/page/4 [R=301,L]
Das Fette sind Zahlen die sich immer wieder verändern können, die "4" am Schluß steht für die Seitenzahl und muß übernommen werden..

20.10.2010 09:19

10 Jörg Kruse

Ein oder mehrere Zahlen kann man durch "[0-9]+" substituieren, den geklammerten Ausdruck kann man hier durch das $1 wieder aufnehmen:

RewriteRule ^shop/products_new\.php/[0-9]+/page/[0-9]+/language/page/([0-9]+)$ http://example.com/shop/products_new.php/page/$1 [R=301,L]

20.10.2010 11:23