Redirect für Verzeichnisse

  • Hallo,

    ich habe ein Problem mit redirect 301.
    Mein bisheriger Dateiname war so aufgebaut:

    http://www.xxxxx.at/verzeichnis/2014/02/dateiname/

    Einige Zeit hatte ich versehentlich folgende Einstellung:

    http://www.xxxxx.at/2014/02/dateiname/

    In der Zeit hat Google alle Beiträge indiziert.
    Nun habe ich wieder auf die erste Variante umgestellt. Jedoch zeigt mit Google Webmaster Tools jetzt alle alten URL's als Crawling Fehler.
    Nun möchte ich mit Redirect 301 diese Urls umleiten. Kann mir jemand verraten wie das geht? Wäre jedoch schön wenn ich nur den Ordner und *.* angeben müsste und nicht 100 Dateien. :-) Oder seht ihr eine andere bessere Lösung?
    Vielen Dank für die Hilfe.

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Normalerweise würde man so etwas in der .htaccess machen. Aber ich stelle mir das schwierig vor. Ich nehme an, dass "verzeichnis" nicht immer identisch ist sondern dass es sich wahrscheinlich um eine Kategorie handelt. Woher willst Du automatisiert in einer Regel wissen, was "verzeichnis" im jeweiligen Fall ist?

    Ist nur so eine Vermutung. Poste doch den Link zu Deiner Seite. Dann kann man sich eher ein Bild machen und Du bekommst leichter und schneller eine Antwort...

    Peter

  • OK, d.h. es sollte folgendes erreicht werden:

    Alle Links mit .../JAHR/MONAT/xxx ändern auf .../design-anmerkungen/JAHR/MONAT/xxx

    Bei allen anderen Links hinten .html anhängen.

    Korrekt so?

    Bekommst Du das hin oder brauchst Du da Hilfe?

    Nebenbei bemerkt solltest Du Dir überlegen, auch bei den Blog-Beiträgen hinten .html an die Permalinks anzuhängen, damit das identisch ist. Ist so nicht ganz durchgängig.

    Peter

  • Hallo Peter,
    bin etwas verunsichert.
    Alle Beitrag URL's haben jetzt die korrekte Form zB.
    http://www.wigl-design.at/design-anmerku…es-uhrendesign/
    Also inkl. das Verzeichnis /design-anmerkungen/
    Google hat das Verzeichnis /design-anmerkungen/ zumindest teilweise nicht. Darum kommt (wenn dieses Verzeichnis nicht angegeben ist) ein Crawling Fehler.
    Daher möchte ich alle Beitrag URL's die dieses Verzeichnis nicht haben und bei Google indiziert sind (zB. http://www.wigl-design.at/2014/01/autode…der-von-nissan/) mit einem Redirect 301 auf die URL http://www.wigl-design.at/design-anmerku…der-von-nissan/ umleiten.

    Dies könnte ich nun mit einzeln aufgelisteten Redirect 301 machen. Lieber wäre mir jedoch eine generelle Umleitung, die dieses Verzeichnis /design-anmerkungen/ auf einmal für alle Beitrag URL's angibt. Sind doch über 100. Jedoch nicht für die Einzelseiten. Dort passt mir die URL.
    Und das bekomme ich leider nicht hin.
    VG
    Jim

  • Hallo Jim,

    ich bin nicht wirklich der Regex-Profi, aber ich denke mit folgender Regel in der .htaccess sollte es gehen (nicht getestet):

    Apache Configuration
    RewriteRule ^([0-9]{4})/([0-9]{2})/(.*)$ /design-anmerkungen/$1/$2/$3 [R=301,L]

    Diese Regel sollte nur dann zutreffen, wenn die URL dem Muster mit Jahr und Monat entspricht.

    Peter

  • Wenn Du nichts zum Vergleichen hast, dann baust Du Dir sehr schnell eine Endlosschleife und damit einen 500er Server-Error.

    Ungetestet, vor den bestehenden Rules einfügen:

    Code
    RedirectMatch 301 ^/(\d{4})/(\d{2})/([a-zA-Z0-9_-]+)/$ http://www.wigl-design.at/design-anmerkungen/$1/$2/$3/


    Für:

    Code
    /2014/01/autodesign-bladeglider-von-nissan/
    /design-anmerkungen/2014/01/autodesign-bladeglider-von-nissan/
  • Apache Configuration
    RewriteRule ^([0-9]{4})/([0-9]{2})/(.*)$ /design-anmerkungen/$1/$2/$3 [R=301,L]


    Ja, diese selbstverständlich auch, doch statt (.*) besser (.+) oder (.+?), weil ja sonst auch /2014/01/ die Bedingung erfüllen würde, ohne das etwas für (.*) vorhanden ist.

  • Hallo Melewo,
    vielen Dank, das funktioniert schon mal fast. :-)
    Eine Site geht nicht:
    http://www.wigl-design.at/2014/01/3d-fax…n-aio-robotics/
    Keine Ahnung warum nicht. Aber die eine Seite kann ich auch direkt umstellen.
    Noch eine Frage, mich würde interessieren wie man auf die vielen schönen Zeichen kommt. Gibt es da irgendwo im WWW eine Anleitung? Ich meine so eine Zeichenfolge wie
    (\d{4})/(\d{2})/([a-zA-Z0-9_-]+)/$
    ist für mich leider alles andere als selbsterklärend.
    VG
    Jim

  • Bei mir ladet die Seite.

    (Erster geklammerter Ausdruck, d für Dezimalzahlen {Anzahl} werden in $1 gespeichert)
    (Zweiter geklammerter Ausdruck wird in $2 gespeichert)
    (Dritter geklammerter Ausdruck, [Zeichenklasse Alphabet plus Ziffern 0 bis 9 plus Unterstrich plus Minuszeichen] wird in $3 gespeichert)

    Minuszeichen innerhalb einer Zeichenklasse darf nur am Anfang oder am Ende der Zeichenklasse stehen, um keinen neuen von-bis Bereich zu eröffnen. Was nicht geklammert wird, wird nicht gespeichert.

    Einfach nach RegEx suchen, gibt einige einführende Tutorials. Die Zusammenfassung ist auch nicht schlecht:

    http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck

  • Bei mir nicht:

    Hatte vergessen zu erwähnen, nach jedem Test mit der htaccess muss der Browser-Cache gelöscht werden.

    Einmal editiert, zuletzt von Melewo (25. Februar 2014 um 09:56)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!