Soll sich der Kunde anders verhalten? Wie?
Soll sich der Kunde anders verhalten? Wie?
Antworten:
Status 301 bedeutet, dass die Ressource (Seite) dauerhaft an einen neuen Speicherort verschoben wird. Der Client / Browser sollte nicht versuchen, den ursprünglichen Speicherort anzufordern, sondern von nun an den neuen Speicherort 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.
Wenn eine Suchmaschinenspinne den 301-Statuscode im Antwortheader einer Webseite findet, versteht sie, dass diese Webseite nicht mehr existiert. Sie sucht nach dem Standortheader als Antwort, wählt die neue URL aus und ersetzt die indizierte URL durch die neue und überträgt auch den Pagerank .
Die Suchmaschine aktualisiert also alle indizierten URLs, die nicht mehr existieren (301 gefunden), mit der neuen URL. Dadurch bleibt Ihr alter Webseitenverkehr erhalten, der Pagerank wird auf die neue umgeleitet (Sie verlieren nicht den Verkehr der alten Webseite).
Browser: Wenn ein Browser den Statuscode 301 findet, speichert er die Zuordnung der alten URL zur neuen URL zwischen. Der Client / Browser versucht nicht, den ursprünglichen Speicherort anzufordern, sondern verwendet ab sofort den neuen Speicherort, es sei denn, der Cache wird geleert.
Wenn eine Suchmaschinenspinne den Status 302 für eine Webseite findet, wird sie nur vorübergehend an den neuen Speicherort umgeleitet und beide Seiten crawlen. Die alte Webseiten-URL ist noch in der Suchmaschinendatenbank vorhanden und versucht immer, den alten Speicherort anzufordern und zu crawlen. Der Client / Browser versucht weiterhin, den ursprünglichen Speicherort anzufordern.
Lesen Sie mehr darüber, wie Sie es in asp.net c # implementieren und welche Auswirkungen es auf Suchmaschinen hat - http://www.dotnetbull.com/2013/08/301-permanent-vs-302-temporary-status-code-aspnet -csharp-Implementation.html
Meistens ist 301 vs 302 wichtig für die Indizierung in Suchmaschinen, da ihre Crawler dies berücksichtigen und den PageRank übertragen, wenn sie 301 verwenden.
Siehe Peter Lee Antwort für weitere Details.
301 ist, dass der angeforderten Ressource eine neue permanente URI zugewiesen wurde und alle zukünftigen Verweise auf diese Ressource unter Verwendung 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 Anforderungs-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.
<?php header("location: http://example.com/new.php"); ?>
und der Datei new.php - <?php echo 'I am new'; ?>
und gehen Sie zum Link . Dort wird der Text "Ich bin neu" umgeleitet und angezeigt. Ersetzen Sie dann den Code in old.php durch <?php echo 'I am old'; ?>
und gehen Sie auch zum Link . Sie sehen den Text "Ich bin alt". Wenn Sie die 301-Umleitung in old.php durchgeführt haben, hätten Sie den Text "Ich bin neu" auch nach den Änderungen im Code von old.php gesehen.
webcomic.com/latest
und webcomic.com/some-comic-title
mit einem 301 umgeleitet wird, leitet der Browser immer zu "some-comic-title" um. Selbst wenn der nächste Comic veröffentlicht wurde und "neueste" jetzt zu "einem anderen Comic-Titel" weiterleitet ... Hier wäre ein 302 besser.
301 Weiterleitungen werden unbegrenzt zwischengespeichert (zumindest von einigen Browsern).
Wenn Sie also eine 301 einrichten und diese Seite besuchen, werden Sie nicht nur umgeleitet, sondern diese Umleitung wird zwischengespeichert.
Wenn Sie diese Seite erneut besuchen, macht sich Ihr Browser * nicht einmal die Mühe, diese URL anzufordern, sondern geht 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 die eingegebene URL wirklich an.
Offensichtlich ist dies keine Option, wenn Sie sich für Facebook oder eine andere Ressource entschieden haben, die Sie nicht vollständig unter Kontrolle haben.
Leider bieten viele Hosting-Anbieter in ihrer Admin-Oberfläche eine Funktion namens "Umleitung" an, die eine 301-Umleitung durchführt. Wenn Sie dies verwenden, um Ihre Domain vorübergehend als kommende Seite auf Facebook umzuleiten, sind Sie im Grunde genommen durcheinander.
* mindestens Chrome und Firefox, je nachdem, wie lange Browser HTTP 301s zwischenspeichern? . Habe es gerade mit Chrome 45 versucht. Bearbeiten: Safari 7.0.6 unter Mac wird auch zwischengespeichert, ein Neustart des Browsers hat nicht geholfen (Link sagt, dass es unter Safari 5 unter Windows hilft.)
** Ich habe Javascript ausprobiert window.location = ''
, da dies die Lösung ist, die in den meisten Fällen angewendet werden kann - es funktioniert nicht. Dies führt zu einer unentdeckten Endlosschleife. PHP unterbricht header('Location: new.url')
jedoch die Schleife
Fazit : Verwenden Sie 301s nur, wenn Sie absolut sicher sind, dass Sie diese URL nie wieder verwenden werden. Normalerweise nie im Root-Verzeichnis (example.com/)
Das Hauptproblem bei 301 ist, dass der Browser die Umleitung zwischenspeichert, selbst wenn Sie die Umleitung von der Serverebene deaktiviert haben.
Es ist immer besser, 302 zu verwenden, wenn Sie die Umleitung für ein kurzes Wartungsfenster aktivieren.