htaccess, 301Rewrite - Herausforderung

Thema wurde von bigburgi, 14. November 2022 erstellt.

  1. bigburgi

    bigburgi Erfahrener Benutzer

    Hallo,

    im Netz schwirren noch so einige Altlasten von eine alten Webseite und umher. Da ich den Hoster schon vor langer langer Zeit gewechselt haben, meckern Google und andere Tool doch immer noch rum. Nun wollte ich per htaccess, 301 Rewrite das abfangen. Das klappt auch bis auf diese eine URL:
    https://www.naturburg.com/modules/wsShop/article.php?article_id=283162&location_id=5

    Wenn ich das hier in die htaccess schreibe,
    RewriteCond %{REQUEST_URI} modules
    RewriteRule ^(.*)$ https://www.naturburg.com [L,R=301]
    komme ich im Gambio Admin nicht mehr z.B. auf die "Modul" => "Versandarten", weil die URL vermutlich https://www.naturburg.com/admin/modules.php?set=shipping lautet.

    Auch wenn ich die komplette URL eingebe bei RewriteCond, geht es nicht, weil "modules" enthalten ist.
    Nun habe ich von Wilken (alter Post von 2018) gehört ein Kombination mit Redirect wäre nicht sinnvoll. Wie kann ich das Problem dennoch lösen? Freue mich auf Ideen!

    Danke
    Dirk
     
  2. Dominik Späte

    Dominik Späte Erfahrener Benutzer

    Hallo Dirk :)

    Damit Du die originale .htaccess nicht bei jedem Update anpassen musst, würde ich das modules-Verzeichnis einfach physisch erstellen und da eine .htaccess reinpacken, die alles auf die Startseite weiterleitet.

    modules/.htaccess
    Code:
    RewriteEngine on
    RewriteRule .* https://www.naturburg.com/ [L,R=301]
    
     
  3. bigburgi

    bigburgi Erfahrener Benutzer

    Hallo Dominik,

    Danke für die gute Idee! :)
     
  4. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Eigentlich müsste man in der Rewrite Bedingung nur etwas genauer angeben wann die Regel treffen soll. Im jetzigen Zustand tut die das, wenn irgendwo in der URL modules vorkommt, es ist also egal ob es www.shop.de/modules/... oder www.shop.de/admin/modules/... ist.

    Nötoges Vorwissen ist, dass die REQUEST_URI normal den aufgerufenen Pfad ohne die eigene Domain enthält, normal begonnen mit einem Schrägstrich für die Wurzel.

    siehe dazu:
    https://httpd.apache.org/docs/current/mod/mod_rewrite.html

    Da müsste also drin sein:
    /modules/wsShop/article.php?article_id=283162&location_id=5

    Die Rewrite Bedingung RewriteCond mag "reguläre Ausdrücke" oder kurz Regex.

    ^ steht darin für den Beginn einer Zeichenkette.
    / darf man nicht einfach schreiben, weil das darin ein Steuerzeichen ist.
    \ sagt sieh das nächste Zeichen danach bitte als normales Zeichen, da beginnt kein Befehl oder sowas.

    Das ergibt dann
    ^\/modules

    Würde immer zutreffen, wenn das Ganze mit /modules... beginnt, aber nicht wenn es z.B. /admin/modules... ist.

    Damit müsstest was bauen können.

    Regex Ausprobier Spielwiese:
    https://regex101.com/
    regex101.png
     
  5. stefan_rot

    stefan_rot Mitglied

    Hallo Wilken,

    herzlichen Dank auch für Deine Hilfe und Ausführungen. Nun sollte ich es hinbekommen :)
     
  6. Anonymous

    Anonymous Erfahrener Benutzer

    Ich gehe mal davon aus, dass Google hier einen 404er Staus meldet.

    Ich dachte eigentlich, dass diese Seiten irgendwann aus dem Google Index automatisch raus fliegen, man also nichts machen muss.

    Ist dem nicht so?
     
  7. barbara

    barbara G-WARD 2014-2020

    Das kann lange dauern. Man kann aber auch die Löschung bei Google beantragen.
    Nur wenn der Link noch irgendwo existiert (z.B. in einem fremden Blog oder irgendwo bei FB und co), nützt das nichts.
     
  8. Anonymous

    Anonymous Erfahrener Benutzer

    Ich habe 660 Seiten mit dem Code 404, die alle zu löschen ist viel Arbeit. Zudem werden die dann nur 6 Monate aus dem Google Index genommen, also nicht dauerhaft aus dem Index entfernt.

    Alle meine Artikel-Seiten mit 404er Status haben vor dem .html einen Erweiterung "-1234.html", sind aber nicht aufrufbar.

    Zum Beispiel:

    (Link nur für registrierte Nutzer sichtbar.)

    Diese Seiten gibt es nirgends, weder in der Sitemap, noch im Shop selber. Ich hatte das Problem schon mal über ein Ticket angefragt und man sagte mir, das die Seiten im Cache von der Ladezeitoptimierung liegen, was aber nicht der Fall war, ich habe das geprüft.

    Ich weiß also nicht, woher Google diese Seiten hat.
     
  9. barbara

    barbara G-WARD 2014-2020

    Das passiert, wenn man einen Artikel kopiert und die URL nicht gleich ändert.
    Dann hängt der Shop die Produkt-ID an die URL, bzw,an den Namen, damit die URL einzigartig und eindeutig bleibt.
    Noch schlimmer wird es, wenn man so einen Artikel dann kopiert, dann wird das z.B.:
    domain.tld/Artikelname-1234-3456.html
     
  10. Anonymous

    Anonymous Erfahrener Benutzer

    Danke für Deine Antwort.

    Ich denke, es bleibt mir wohl nicht anderes übrig, als abzuwarten, bis Google sie successiv löscht.
     
  11. Anonymous

    Anonymous Erfahrener Benutzer

    Doch, Du könntest mit einer RewriteRule auf HTTP 410 in der .htaccess dem Google-crawler explizit mitteilen, dass es diese Seiten nicht gibt. Siehe dazu auch hier https://www.onlinesolutionsgroup.de/blog/404-vs-410-google/

    Das hat zumindest uns geholfen die Anfragen nach nicht (mehr) existenten Ressourcen relativ schnell aus dem Google Index zu bekommen. Siehe auch mein Beitrag dazu in diesem Thread https://www.gambio.de/forum/threads/komische-adresse-umleiten-weiterleiten.48991/
     
  12. Anonymous

    Anonymous Erfahrener Benutzer