[英]301 Redirects in PHP: Do I need to explicitly tell it that it's a 301?
這個應該很容易......
我是否需要明確告訴PHP我想進行301重定向? 像這樣...
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.example.com/");
?>
通常,我放棄第一個陳述,只是做...
<?php
header("Location: http://www.example.com/");
?>
第二個例子實際上是302重定向嗎?
是。
引用精細手冊 :
第二個特例是“Location:”標題。 它不僅將此標頭發送回瀏覽器,而且還向瀏覽器返回REDIRECT(302)狀態代碼,除非已設置201或3xx狀態代碼。
最可能的原因是302 Found
是一個非指定用途的重定向。 您可以使用四個3xx重定向標頭。
301 Moved Permanently
是永久重定向,例如用於保持與舊URL的兼容性。 因此,許多瀏覽器將緩存重定向位置,並且不會再次檢查。 303 See Other
是重定向,例如用於Post-Redirect-Get操作 - 請注意,它僅定義為HTTP / 1.1 307 Temporary Redirect
意味着“是的,它通常在這里,但現在,資源在其他地方” - 這可能不是你想要的意思:例如,你總是希望在這一點上重定向。 再次,在HTTP / 1.1中定義 302 Found
是一個未指定用途的重定向 - 當上述不適用時,或者當需要HTTP / 1.0兼容性時使用(2011年仍然是一個問題?); 因此,它被用作默認值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.