So, ich bin gerade dabei, die alten Daten zu übernehmen. Dazu gehörten auch die alten URL's. Damit alte Links noch funktionieren bzw an einem sinnvollen Platz landen hätte ich gern eine Seite mit passender Weiterleitung.
Die alten URLs sehen z.B. so aus
products_0815.php oder
browse_001_01.php
Die alten Produkt IDs und IDs der Warengruppen landen in extra Tabellenfeldern. Wie muss ich das machen, dass ein Zugriff auf eine alte URL abgefangen und auf die richtige Seite umgeleitet wird? Wenn möglich so, dass für Google kein doppelter Content entsteht.
Alte URL's weiterleiten mit Django
Code: Alles auswählen
(r'^products_(?P<product_id>\d+).php$', 'app.views.old_sites'),
def old_sites(request, product_id):
...
get object und redirect oder 404-Seite
wie wärs mit mod-rewrite und htaccess?
the more they change the more they stay the same
Bei dem Redirect sollte man dann noch darauf achten den korrekten Statuscode mitzuschicken.SchneiderWeisse hat geschrieben:Code: Alles auswählen
(r'^products_(?P<product_id>\d+).php$', 'app.views.old_sites'), def old_sites(request, product_id): ... get object und redirect oder 404-Seite
Code: Alles auswählen
from django.http import HttpResponsePermanentRedirect
...
return HttpResponsePermanentRedirect(...)
Die Dokumentation zeigt einen noch einfacheren Weg mittels generic view.
Damit Google weiß, dass die alte URL nur ein Redirect ist, muss man 301 (statt wie üblich nach einem POST 302) benutzen. Ich würde ebenfalls vorschlagen, wenn man alte URLs auf neue abbilden kann, ohne etwas in der DB nachzugucken, hier keinen extra Lookup zu machen. Ach ja, und ich würde ebenfalls eher Django statt mod_rewrite oder einem anderen Webserver-spezifischen Weg den Vorzug geben. Vielleicht ist es meine Java-Brille, die mich den Webserver und das Betriebssystem als ein Implementationsdetail sehen lässt, wo ich mich nicht in eine Abhängigkeit zu einer konkreten Implementierung begeben möchte.
Stefan
Damit Google weiß, dass die alte URL nur ein Redirect ist, muss man 301 (statt wie üblich nach einem POST 302) benutzen. Ich würde ebenfalls vorschlagen, wenn man alte URLs auf neue abbilden kann, ohne etwas in der DB nachzugucken, hier keinen extra Lookup zu machen. Ach ja, und ich würde ebenfalls eher Django statt mod_rewrite oder einem anderen Webserver-spezifischen Weg den Vorzug geben. Vielleicht ist es meine Java-Brille, die mich den Webserver und das Betriebssystem als ein Implementationsdetail sehen lässt, wo ich mich nicht in eine Abhängigkeit zu einer konkreten Implementierung begeben möchte.
Stefan