[英]PHP header redirect 301 - what are the implications?
我有example.com
。 如果用戶已登錄,它應該自動加載example.com/option-X
其中 X 是用戶的預定義選擇。
所以,我在index.php
的頂部這樣做:
header("Location: /option-X");
但是,如果用戶沒有登錄,我只是自動選擇第一個選項,如下所示:
header("HTTP/1.1 301 Moved Permanently");
header("Location: /option-a");
所以,關於這樣做的影響,我有兩個問題:
example.com/option-a
- 它有 301 標頭會影響他們嗎? 301 的效果是搜索引擎將索引/option-a
而不是/option-x
。 這可能是一件好事,因為搜索索引無法訪問/option-x
,因此可能對索引產生積極影響。 僅當您明智地使用它時
重定向后 put exit();
停止腳本的其余部分執行
header("HTTP/1.1 301 Moved Permanently");
header("Location: /option-a");
exit();
這個更好:
<?php
//* Permanently redirect page
header("Location: new_page.php",TRUE,301);
?>
只需一個調用,包括代碼 301。還要注意同一目錄中文件的相對路徑(不是“/dir/dir/new_page.php”等),所有現代瀏覽器似乎都支持。
我認為這從 PHP 5.1.2 開始有效,可能更早。
提示:使用http_response_code比編寫完整的標頭更容易記住:
http_response_code(301);
header('Location: /option-a');
exit;
確保在重定向后die()
,並確保在腳本執行時盡快進行重定向。 它確保不再浪費數據庫查詢(如果有的話)。 這是我可以給你的一個提示
對於搜索引擎,301 是最好的響應碼
像 301 這樣的搜索引擎重定向比 404 或其他類型的客戶端重定向更好,不用擔心。
CPU 使用率將是最小的,如果您想節省更多周期,您可以嘗試使用 htaccess 在 apache 中處理重定向,那么 php 甚至不必參與其中。 如果您想對服務器進行負載測試,可以使用 apache 自帶的 ab,如果您正在尋找更強大的測試工具,可以使用 httperf。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.