Canonical Links und 301 Redirect wenn die URL nicht mit Slug übereinstimmt

8

Ich versuche ein URL-Schema zu implementieren, das dem Stack-Überlauf in django / python ähnlich ist.

z. Das PK wird zusammen mit einem Slug des Titels in der URL gespeichert. Daher lautet die URL für diese Frage (ID # 4787731)

%Vor%

Wenn ich später den Titel ändere (oder einfach irgendeinen zufälligen Fehler in die URL einfüge), dann wird die Seite immer noch wissen, welche Frage ich habe (durch die ID) und wird 301 an die richtige URL weiterleiten - z. versuchen Sie es.

%Vor%

Also

  • Was ist der beste Weg, um kanonische Links in meine Seiten aufzunehmen, wie zum Beispiel

    ?

    & lt; link href="https://stackoverflow.com/questions/4787731/canonical-links-and-301-redirect-if-url-doesnt-match-slug" & gt;

(Kann ich get_absolute_url verwenden)

  • Was ist der beste Weg zu erkennen, dass die aktuelle URL nicht mit dem kanonischen Link übereinstimmt und ein 301?
  • ausgibt?

Hinweis - Diese Frage ist ähnlich, adressiert aber nur den Fall von generiert den Slug im laufenden Betrieb oder statisch.

    
Ryan 24.01.2011, 22:03
quelle

2 Antworten

6

1: Ich denke nicht, dass es einen Sinn hat, das kanonische Tag zu verwenden, wenn es sowieso 301 gibt.

Stellen Sie sich ein Szenario vor, in dem Sie die URL von /q/111/hello-world in /q/111/foobar ändern. Die Suchmaschinen gehen nicht davon aus, dass die beiden gleich sind, es sei denn, sie besuchen die ursprüngliche URL mit dem canonischen Tag, der auf /q/111/foobar zeigt (was es nicht tut, weil es nun ein 301 ist, um jeden Beweis einer Beziehung zwischen den Seiten zu trennen) / p>

2: Ich würde es einfach machen. Definieren Sie ein nicht eindeutiges slug -Feld und vergleichen Sie es mit der erfassten URL in Ihrer Detailansicht.

%Vor%     
Yuji 'Tomita' Tomita 25.01.2011, 01:01
quelle
1

Ich habe Yujis hilfreiche Anweisungen befolgt, aber festgestellt, dass Sie das HttpResponsePermanentRedirect -Objekt verwenden müssen, um eine permanente 301 anstelle der temporären 302 zu erhalten.

Gringo Suave 19.01.2012 06:22
quelle