Zur Navigation

per 301 Redirect verschiedene seiten umleiten [4]

31 Jörg Kruse

Hat Joomla mit dem Upgrade das URL-Format geändert?

Wie sehen denn die alten Links aus, kannst du da ein paar Beispiele aufführen?

Die aktuellen URLs sind ja statisch - dafür sollte es eigentlich noch einen Eintrag von Joomla in der .htaccess Datei geben?

Muss ich diesen Teil überschreiben:

RewriteCond %{REQUEST_URI} ^/sitemap.xml
RewriteRule .* /index.php?option=com_xmap&sitemap=1&view=xml

Diesen Teil würde ich so lassen, der sorgt dafür dass die XML-Sitemap gefunden wird

08.06.2012 15:30

32 Hochzeit DJ (Gast)

Lieber Jörg,

danke für deine Antwort. Dass es viele verwaiste Links gibt, ist einem Plugin zu verdanken, dass für Joomla 2.5 nicht mehr weiterentwickelt worden ist. Es war zum Bloggen. Jetzt sind jede Menge "Tag" Links irgendwo im Google + Co. Cache. Ebenfalls war es der Eventlist-Kalender, der beim Importieren der alten Daten nicht alles mitnehmen konnte.

Hier zwei Beispiele:

http://der-hochzeits-dj.ch/index.php/dj-hochzeit/blog/5-vinyl-lebt-immer-noch.html

index.php/dj-hochzeit/blog/tag/dj

In Joomla 2.5. kann man mit der Komponente Umleitungen das Problem via Handarbeit lösen (jeden rapportieren fehlerhaften Link mit einem passenden Link anpassen). Einfacher wäre es, in der htaccess eine Weiterleitung einzurichten, dass ein fehlerhafter Verweis direkt zur Startseite führt, sollte einer der (rund 500!) verwaisten Links aufgerufen werden.

Kann ich in die htaccess eine Weiterleitung schreiben, dass an Stelle der 404 Seite die Startseite erscheint? Das wäre mir am liebsten.

Vielen Dank

Hochzeit DJ

08.06.2012 16:12

33 Hochzeit DJ (Gast)

Ich habe eine Lösung gefunden, die aber noch nicht so zufriedenstellend ist, aber es würde funktionieren:

In die error.php die in /templates/system liegt unter der Zeile 19 vor dem <head> diese Zeile einfügen:

<meta HTTP-EQUIV="REFRESH" content="0; url=/">

Dann wird die Homepage direkt auf die Startseite umgeleitet (mit einer Verzögerung). Ich nehme das jetzt aber mal raus, damit die oben erwähnten Links von Jörg angeschaut werden könnten.

08.06.2012 16:36

34 Jörg Kruse

Fangen die alten URLs alle mit diesem String an und gibt es keine neuen URLs, die mit diesem String anfangen (?):

http://der-hochzeits-dj.ch/index.php/dj-hochzeit/blog/

In so einem Fall würde ich folgende Weiterleitung auf die Startseite probieren:

RewriteRule ^index.php/dj-hochzeit/blog/ http://der-hochzeits-dj.ch/ [R=301,L]

Die Rule würde ich hierbei oberhalb der bereits enthaltenen mod_rewrite Rules platzieren (unterhalb der RewriteEngine Direktive)

08.06.2012 20:24 | geändert: 08.06.2012 20:25

35 Hochzeit DJ (Gast)

Hallo Jörg,

es gibt noch jede Menge anderer Strings....dein Vorschlag wäre also nur auf die mit /blog/

Wie könnte ich eine generelle Umleitung machen für alle 301,404,500 (etc). Fehlermeldungen?

Vielen Dank

09.06.2012 08:44

36 Jörg Kruse

Wie könnte ich eine generelle Umleitung machen für alle 301,404,500 (etc). Fehlermeldungen?

301er Status Codes werden bereits weitergeleitet.

500er Fehlerseiten kann man *vielleicht* umleiten, aber die Frage ist, ob das so gut ist, den Server noch zusätzlich mit Weiterleitungen zu quälen, wenn er eh schon Probleme hat

404er Fehlerseiten könnte man so umleiten:

ErrorDocument 404 http://example.com/404.html

... vorausgesetzt, der 404er wurde vom Websrver gesetzt, und nicht vom CMS.

Ich würde solche Weiterleitungen aber nicht unbedingt empfehlen, da der Webserver hierbei einen Status Code 302 sendet, und der hat in der Vergangenheit sehr viel Ärger bereitet. Im allerschlimmsten Fall schießt du damit deine Startseite aus dem Suchmaschinen-Index, wenn du alle 404er auf diese Weise auf die Startseite weiterleitest. Google sagt zwar, dass so etwas nicht mehr vorkommen soll, aber ich wäre da lieber vorsichtig

09.06.2012 09:27

37 Hochzeit DJ (Gast)

Vielen Dank Jörg,

ErrorDocument 404 http://example.com/404.html

Dass ich dich nicht falsch verstehe, das kommt auch in die htaccess?

Vielen Dank

09.06.2012 10:25

38 Jörg Kruse

Ja, das kommt in die .htaccess Datei.

Wie gesagt, gehst du damit aber ein gewisses Risiko ein, dass die Suchmaschinen die Umleitung missverstehen, was die Stellung der Zielseite im Suchmaschinen-Index gefährden könnte. Eien Umleitung auf die Startseite würde ich von daher nicht empfehlen!

09.06.2012 10:45

... 1 Monat später ...

39 Zietlow

Hallo Community,

Wir betreiben eine Website www.*****.net (bei 1blu - alte Website) unter der xt:commerce Shop-Version 3.0.4 SP 2.1. und eine Website unter xtcModified 1.05 SP1c www.******.de (bei all-inkl.com - neue Website).

Nun haben wir mit der 301-Weiterleitung erhebliche Probleme. Zu diesem Sachverhalt haben wir alle Information aus verschiedenen Foren ausprobiert – leider alles ohne Erfolg.

In unserer .htaccess steht folgende Anweisung:

RewriteEngine on
Options +SymLinksIfOwnerMatch
RewriteCond %{HTTP_HOST} ^www.*******.net
RewriteRule (.*) http://www.*******.de/$1 [R=301]

Das funktioniert auch bestens, soweit die Strukturen des alten Shop und des neuen Shop identisch sind. Nun sind im Neuen Shop jedoch auch Veränderungen vorgenommen worden, wo das natürlich nicht mehr funktioniert.

Wir möchten nun einen Produkt-Link (bei Google) aus dem alten Shop z.B.

www.*******.net/product_info.php?products_id=725
oder alternativ die gleiche Adresse
http://www.******.net/Medizintechnik-fabrikneu/Medizinische-Liegen/-bull;-Therapie-u-Gymnastikliegen/Therapieliege-Kipptisch-Breite-Liegeflaeche-1000-mm-fuer-vielfaeltige-Therapiemethoden-einsetzbar--725.html

auf das zugeordnete Ziel im neuen Shop weiterleiten. Am Besten in die jeweiligen Hauptverzeichnisse, so dass der Kunde sofort einen Gesamtüberblick über das jesweilige Gesamtangebot bekommt.

Der Link für ein Zielverzeichnis würde z.B. lauten:

http://www.*********.de/Medizintechnik-fabrikneu/Medizinische-Liegen:::28_282.html

Davon gibt es ca. 130 Produkte die wir einzeln weiterleiten müssen. Wir haben bereits sehr viel Zeit für unser Problem aufgewendet, ohne weiter zu kommen

Wer kann helfen - wie lautet die richtige Anweisung???

Vielen Dank.

Gruß Günter

29.07.2012 15:33

40 Jörg Kruse

Bei der Weiterleitung der statischen URLs musst du einfach nur die konkreten Pfade angeben:

RewriteCond %{HTTP_HOST} ^www\.example\.net
RewriteRule ^Medizintechnik-fabrikneu/Medizinische-Liegen/-bull;-Therapie-u-Gymnastikliegen/Therapieliege-Kipptisch-Breite-Liegeflaeche-1000-mm-fuer-vielfaeltige-Therapiemethoden-einsetzbar--725\.html$ http://www.example.de/Medizintechnik-fabrikneu/Medizinische-Liegen:::28_282.html [R=301,L]

Für die Weiterleitung der dynamischen URL benötigst du zusätzlich jeweils noch eine RewriteCond für den Query String:

RewriteCond %{HTTP_HOST} ^www\.example\.net
RewriteCond %{QUERY_STRING} products_id=725
RewriteRule ^product_info\.php$ http://www.example.de/Medizintechnik-fabrikneu/Medizinische-Liegen:::28_282.html? [R=301,L]

Mit einem "?" an der Ziel-URL hängst du den alten Query String ab


PS:
wenn example.de und example.net sich das DocumentRoot-Verzeichnis teilen, wie die RewriteCond für den HTTP-HOST vermuten lässt, würde ich example.net ein eigenes DocumentRoot-Verzeichnis spendieren, damit die 130 * 2 Weiterleitungsregelen nicht bei jedem Seitenaufruf auf der neuen Domain example.de abgearbeitet werden müssen

29.07.2012 19:48 | geändert: 29.07.2012 19:54