404 Fehler nach Relaunche

  • Hallo Wordpressler,

    ich habe vor 4 Wochen einen Website relaunche unserer Website vollzogen, leider ohne davor die 301 redirects zu setzen :lol:

    Hinzu kommt, dass nun das Tool Qtranslate durch Wpml ersetzt werden soll.
    Aktuell bekomme ich in den Webmastertools 1200 404 Fehler Angezeigt und habe große Bedenken, dass nach dem Plugin wechsel sich diese noch steigern.

    Einen 301 redirect über die .htaccess habe ich schon versucht

    Apache Configuration
    RewriteRule ^alterordner/seite/?lang=en$ /en/[URL="http://www.u-quadrat.de/en/consulting/storage-management/"]neueseite/[/URL] [R=301,L]

    Leider passiert nach dieser Methode NICHTS:-(

    Hat vill jemand eine Lösung wie ich das am besten lösen könnte ?

    Vielen Dank im Voraus

    • 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

  • Wo stehen denn die Regeln in der .htaccess-Datei, vor oder nach den Wordpress-Regeln?
    Sie müssen vor den Wordpress-Regeln stehen!

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • Ja die stehen vor der Wordpress-regel.
    Mir ist mittlerweile aufgefallen das die rewrite Regel ohne den languagekey am ende funktioniert..also ohne das "[COLOR=#333333]?lang=en$[/COLOR]"
    Jedoch benötige ich diesen ja da die Url so heißt..

    Jemand eine Idee wie das auch mit diesem Key in der Url funktionier ?

    Grüße
    Weswesx

  • Ich komme hier leider nicht weiter...
    Wie muss ich den Query string denn verarbeiten ?

    Ich habe zum Beispiel 100 Seiten wo nun alle anstatt : http://www.url.de/ordner/seite[COLOR=#333333]?lang=en$ nun [/COLOR] http://www.url.de/en/seite heißen..

    Kann mir jemadn Sagen wie ich diese 301 redirect Regel nun schreiben muss ?
    Und weis evtl. jemand wie lange Google braucht um die Redirects zu erkennen und meine Fehler löscht ?

    bin hier noch am verzweifeln :sad::-(

  • Könnte in etwa so funktionieren:

    Apache Configuration
    RewriteCond %{QUERY_STRING} ^lang=(\w+)$
    RewriteRule ^/ordner/(.*) /%1/$1

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • Ahh jetzt verstehe ich das langsam besser.
    Gehe ich richtig in der Annahme, dass ich auch einfach das so schreiben kann ?

    Apache Configuration
    [COLOR=#333333]RewriteCond %{QUERY_STRING} ^lang=en$
    [/COLOR][COLOR=#333333]RewriteRule ^/en/(.*) /%1/$1[/COLOR]

    Weil ich muss das für mehrere Sprachen machen das heißt auch noch für

    Apache Configuration
    [COLOR=#333333]RewriteCond %{QUERY_STRING} ^lang=it$
    [/COLOR][COLOR=#333333]RewriteRule ^/it/(.*) /%1/$1[/COLOR]

    Und vill noch als ganz blöde Frage, wo ist hier die 301 Deklarierung damit Google auch weis das da dauerhaft so geregelt ist ?

    Vielen Dank für deine super Hilfe :D

    Einmal editiert, zuletzt von weswesx (27. Januar 2014 um 15:48)

  • Nicht ganz. :-)

    Also die erste Zeile wertet den Query-String aus und merkt sich die Sprache in der Variable %1. Das heißt, du mußt da nicht explizit en, it oder ru angeben. Es funktioniert mit allen Sprachen.

    Die zweite Zeile ist die eigentliche Umsetzung. Dort muß der Aufruf zum Muster der alten Seiten (aber ohne Query-String) passen, also /ordner/seite. Wobei seite wieder als Variable in $1 gespeichert wird. Aus den beiden Variablen wird dann das Ziel zusammengesetzt, also /%1/$1.

    Was ich noch vergessen habe, das sind die Parameter bei der RewriteRule. Es mußte also so aussehen:

    Apache Configuration
    RewriteCond %{QUERY_STRING} ^lang=(\w+)$
    RewriteRule ^/ordner/(.*) /%1/$1 [L,R=301]

    L heißt, es ist die letzte Regel und R=301 bewirkt die permanente Weiterleitung.

    Ist /ordner/ in der alten Struktur immer gleich? Oder muß der in der neuen Struktur auch mit auftauchen?

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • Alles klar, man lernt also nie aus =)
    Ich glaube mit dem /Ordner habe ich mich falsch ausgedrückt...

    Die neue Ordnerstruktur ist zu 99,9 % die gleiche wie davor also die einzige Änderung ist von :

    http://www.url.de/irgendeinOrdner/irgendeineSeite/[COLOR=#333333]?lang=en$
    [/COLOR]
    zu

    http://www.url.de/en/irgendeinOrdner/irgendeineSeite
    (Anstatt dem "en" kann auch it,pl stehen)

    Leider musste ich zusätzlich einen Ordner entfernen, dass heißt das aus:

    http://www.url.de/alterOrdner/seiten
    nun
    http://www.url.de/seiten geworden ist, die anderen Ordner sind jedoch vorhanden.
    Welches ich auch noch redirecten muss.

    Wirkt sich der erste redirect dann auch auf den darauf folgenden Redirect aus ? (Im Bezug auf den Sprachwechsel)


    Vielen Vielen Dank für deine Hilfe:D

  • Ich frage einfach nochmal nach.

    Es gibt einen Sonderfall /alterOrdner/seite der jetzt nur noch /seite heißt, für den auch die Auflösung der Sprache mit ?lang=ln -> /ln/seite funktionieren soll, aber auch ohne Sprache umgeleitet werden muß.

    Ansonsten soll für alle anderen alten Ordner mit Seiten die Sprache jetzt anstelle als Parameter davor stehen, also /ln/Ordner/Seite.

    Richtig so?

    Dann könnte es so funktionieren:

    Eventuell mußt Du bei den RewriteRules den ersten Schrägstrich nach dem ^ rausnehmen.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • Genau so ist der Plan, habe es gleich einmal ausprobiert und tada ein erster Erfolg :-P

    Aber 2 Sachen stimmen leider noch nicht ganz, aber ich glaube das liegt an meiner ersten falschen Beschreibung:
    Er soll mir von http://www.url.de/ordner/alterOrdner/seite auf http://www.url.de/ordner/seite weiterleiten.

    Da habe ich mich leider in meinem vorherigen Post vertippt :-(:oops:

    Und der Sprach Redirect funktioniert, jedoch lässt er das "?Lang=en" am Ende der Url auch noch mit stehen, dass beeinflusst zwar nicht die Funktionalität, sieht aber verwirrend aus.

    Hättest du mir hierzu evtl noch eine Lösungsvorschlag ?

    Vielen Vielen Dank ohne dich wäre ich wohl aufgeschmissen :grin:

  • So, neue Version :-)

    Das Fragezeichen am Ende der neuen URL entfernt den Query-String.
    Ansonsten habe ich das bei mir eben mal getestet, es funktioniert so wie es soll, auch mit

    Code
    /bla/fasel?lang=ru

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • Super, damit funktioniert das ganze einwandfrei =)
    Leider ist mir nun nun aufgefallen, dass bei der alten Seiten (statisch) die seiten z.B. ordner/ordner/seitenname.html hießen.

    Nun haben diese Seiten jedoch keinen "richtigen Namen" mehr (cms = wordpress) sondern es heißt nur noch ordner/ordner/seitenname/
    (hinter dem letzten / würde eig. index.php stehen, welches ich jedoch durch rewrite entferne):

    Apache Configuration
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/ 
    RewriteRule ^index\.html$ http://www.seite.de/ [R=301,L]



    Gibt es hierfür auch eine Weiterleitungsregel welche ich anwenden kann?
    Da Google mir natürlich jetzt den Fehler meldet, dass diese Seite nicht mehr da wäre.. ?

  • Also die Startseite hieß index.html und alle anderen Seiten z.B. /ordner/ordner/irgendwas.html, ggf. mit Sprache dann /ordner/ordner/irgendwas.html?lang=de, richtig?

    Dann könnte es so funktionieren:

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

Jetzt mitmachen!

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