簡體   English   中英

PHP 標頭重定向 301 - 有什么影響?

[英]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");

所以,關於這樣做的影響,我有兩個問題:

  1. 由於搜索引擎爬蟲不會登錄,他們總是會得到example.com/option-a - 它有 301 標頭會影響他們嗎?
  2. 執行這些重定向的服務器 CPU 負載可能是多少? 我不知道如何對其進行測試。 當前站點(沒有重定向)每天有大約 10 萬次訪問。

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.

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