簡體   English   中英

301重定向PHP:我是否需要明確告訴它它是301?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM