wake-up-neo.com

HTTP-Weiterleitung: 301 (permanent) vs. 302 (temporär)

Soll sich der Kunde anders verhalten? Wie?

364
flybywire

Status 301 bedeutet, dass die Ressource (Seite) permanent an einen neuen Speicherort verschoben wird. Der Client/Browser sollte nicht versuchen, den ursprünglichen Speicherort anzufordern, sondern den neuen Speicherort von nun an verwenden.

Status 302 bedeutet, dass sich die Ressource vorübergehend an einer anderen Stelle befindet und der Client/Browser weiterhin die ursprüngliche URL anfordern sollte.

548

Wenn eine Suchmaschinenspinne im Antwortheader einer Webseite 301-Statuscode findet, erkennt sie, dass diese Webseite nicht mehr vorhanden ist, sucht im Antwortheader nach der neuen URL und ersetzt die indizierte URL durch die neue und überträgt auch den PageRank .

Die Suchmaschine aktualisiert also alle nicht mehr vorhandenen indizierten URLs (301 gefunden) mit der neuen URL. Dadurch wird der alte Webseitenverkehr beibehalten, der Pagerank übernommen und auf die neue umgeleitet (Sie verlieren nicht den Datenverkehr der alten Webseite).

Browser: Wenn ein Browser 301-Statuscode findet, speichert er die Zuordnung der alten URL zur neuen URL im Cache. Der Client/Browser versucht nicht, den ursprünglichen Speicherort anzufordern, sondern verwendet fortan den neuen Speicherort, es sei denn, der Cache wird geleert.

enter image description here

Wenn eine Suchmaschinenspinne den Status 302 für eine Webseite findet, wird sie nur vorübergehend an den neuen Speicherort umgeleitet und durchsucht beide Seiten. Die alte Webseiten-URL ist noch in der Suchmaschinendatenbank vorhanden und versucht immer, den alten Speicherort anzufordern und diesen zu crawlen. Der Client/Browser versucht weiterhin, den ursprünglichen Speicherort anzufordern.

enter image description here

Lesen Sie mehr über die Implementierung in asp.net c # und die Auswirkungen auf Suchmaschinen - http: //www.dotnetbull .com/2013/08/301-permanent-vs-302-temporärer-statuscode-aspnet-csharp-Implementierung.html

102
Rohit

Meistens ist 301 vs 302 für die Indizierung in Suchmaschinen wichtig, da ihre Crawler dies berücksichtigen und den PageRank bei Verwendung von 301 übertragen.

Siehe Peter Lees Antwort für weitere Einzelheiten.

34
Residuum

301 ist, dass der angeforderten Ressource eine neue permanente URI zugewiesen wurde und alle zukünftigen Verweise auf diese Ressource mithilfe einer der zurückgegebenen URIs erfolgen sollten.

302 ist, dass sich die angeforderte Ressource vorübergehend unter einem anderen URI befindet.

Da die Umleitung gelegentlich geändert werden kann, sollte der Client den Request-URI weiterhin für zukünftige Anforderungen verwenden.

Diese Antwort kann nur zwischengespeichert werden, wenn dies durch ein Cache-Control- oder Expires-Headerfeld angezeigt wird.

20
Peter Lee

301 Weiterleitungen werden auf unbestimmte Zeit zwischengespeichert (zumindest von einigen Browsern).

Wenn Sie also eine 301 einrichten und diese Seite besuchen, werden Sie nicht nur umgeleitet, sondern diese Umleitung wird auch zwischengespeichert.

Wenn Sie diese Seite erneut aufrufen, fordert Ihr Browser * diese URL nicht einmal an, sondern wechselt nur zum zwischengespeicherten Umleitungsziel.

Die einzige Möglichkeit, eine 301 für einen Besucher mit dieser Umleitung im Cache rückgängig zu machen, besteht darin, zur ursprünglichen URL zurückzukehren **. In diesem Fall bemerkt der Browser die Schleife und fordert schließlich wirklich die eingegebene URL an.

Offensichtlich ist dies keine Option, wenn Sie sich für Facebook 301 oder eine andere Ressource entschieden haben, die Sie nicht vollständig unter Kontrolle haben.

Leider bieten viele Hosting-Anbieter eine Funktion in ihrer Admin-Oberfläche an, die einfach als "Umleitung" bezeichnet wird und eine 301-Umleitung vornimmt. Wenn Sie dies verwenden, um Ihre Domain vorübergehend auf Facebook als eine in Kürze erscheinende Seite umzuleiten, sind Sie im Grunde genommen geschraubt.

* mindestens Chrome und Firefox laut Wie lange zwischenspeichern Browser HTTP 301s? . Habe es einfach mit Chrome 45) versucht. Bearbeiten: Safari 7.0.6 auf Mac speichert auch, ein Neustart des Browsers hat nicht geholfen (Link sagt, dass es auf Safari 5 unter Windows hilft.)

** Ich habe Javascript window.location = '' Ausprobiert, da dies in den meisten Fällen die Lösung ist - es funktioniert nicht. Dies führt zu einer unentdeckten Endlosschleife. Allerdings unterbricht php header('Location: new.url') die Schleife

Fazit: Verwenden Sie 301s nur, wenn Sie absolut sicher sind, dass Sie diese URL nie wieder verwenden werden. Normalerweise nie im Stammverzeichnis (example.com/)

16

Das Hauptproblem bei 301 ist, dass der Browser die Umleitung zwischenspeichert, auch wenn Sie die Umleitung auf Serverebene deaktiviert haben.

Es ist immer besser, 302 zu verwenden, wenn Sie die Umleitung für ein kurzes Wartungsfenster aktivieren.

8
Jobin Joseph