Ich hatte mal während eines Domainumzuges den SEO Operator umgestellt vom : auf -, weil ja diverse Software Probleme Macht, wenn eine Doppelpunkt in einer URL ist.
Ich hatte mir eine Redirect Map gebaut, wo ich jeden einzelnen Link mit einer Zeile in der .htaccess in dem Format redirectet hatte:
Redirect 301 /Impressum:_:4.html https://www.j-k-fischer-verlag.de/Impressum-_-4.html
Die letzte Zeile dann um alles übersehene einzusammeln:
Redirect 301 / https://www.j-k-fischer-verlag.de/
Das ganze produziert aber eben Probleme bei den vergessenen Links, wie print_product_info.php
Der Googlebot versucht z.B. so was zu crawlen:
https://www.j-k-fischer-verlag.de/Historisches/Archaeologie/print_product_info.php?products_id=2844
Da ich keine Lust habe mir laufend die crawling Fehler anzusehen und dann darauf zu reagieren, habe ich im Netz eine intelligentere Lösung gesucht und auch gefunden:
https://www.geoffhayward.eu/2014/04/character-replace-with-apache-module-mod-rewriteAlso umgebaut auf : nach -
RewriteRule ^(.*):(.*)$ $1-$2 [N,E=redirect:true]
RewriteCond %{ENV:redirect} ^true$
RewriteRule (.*) $1 [R=301]
Damit würde auf der alten Domain eine Zeile reichen:
Redirect 301 / https://www.j-k-fischer-verlag.de/
... und auf der neuen dieser Dreizeiler.
Ich habe das mal direkt unter
RewriteEngine On
platziert und es scheint zu funktionieren.
Was mich ein wenig verwirrt ist .....
Aus
https://www.j-k-fischer-verlag.de/Impressum:_:4.htmlwird jetzt
https://www.j-k-fischer-verlag.de/Impressum-_-4.html?coID=4Es funktioniert zwar, aber irgendwie wird der GET Parameter nochmal angehängt?!?
Das kann man doch sicher unterbinden?
Der Versuch das ganze als letzte Regel einzubinden brachte ein identisches Ergebnis.
Schön wäre hier mal eine zuverlässige Lösung für solche regex_replace redirects zu haben ... ich denke da auch an solche Dinge:
http://www.modified-shop.org/forum/index.php?topic=35083Linkback: https://www.modified-shop.org/forum/index.php?topic=35095.0