重定向多个页面

如果你有很多页面需要重定向,上面的例子不太合适——重定向多个页面的一种方法是首先将它们列在一个数组中,然后循环遍历这个数组。

数组可以很容易地构造,最简单的方法之一是像下面那样做。

$OldPages[1] = 'Old-Page-1.php';
$OldPages[2] = 'Old-Page-2.php';
$OldPages[3] = 'Old-Page-3.php';
 //etc...

然后,我们将创建一个包含所有新位置的数组。

$NewPages[1] = 'http://onitroad.com/New-Page-1';
$NewPages[2] = 'http://onitroad.com/New-Page-2';
$NewPages[3] = 'http://onitroad.com/New-Page-3';
 //etc...

然后可以在我们的循环中检查这些 - 下面提供了此示例的完整代码。

//Old Locations
$OldPages[1] = 'Old-Page-1.php';
$OldPages[2] = 'Old-Page-2.php';
$OldPages[3] = 'Old-Page-3.php';
 //New Locations Below!
$NewPages[1] = 'http://onitroad.com/New-Page-1';
$NewPages[2] = 'http://onitroad.com/New-Page-2';
$NewPages[3] = 'http://onitroad.com/New-Page-3';
$MaxPages = count($OldPages);
$Counter = 1;
while ($Counter <= $MaxPages) {
  if ($_SERVER['REQUEST_URI'] === $OldPages["$Counter"]) {
  header("HTTP/1.1 301 Moved Permanently");
  header('Location: ' . $NewPages["$Counter"]);
  exit();
  }
++$Counter;
}
PHP 重定向

PHP 重定向是通过向浏览器发送 HTTP 位置标头来执行的,这可以通过 PHP 标头函数来完成。

该位置应该与相关的 HTTP 状态消息一起发送很长的消息——重定向的类型通过 PHP 发送的单独标头控制。
正确获取位置标头和状态消息很重要。

下面的示例处理 301 永久重定向 - 对已移动的页面执行永久重定向,这样做是为了搜索引擎将自动识别它们已被移动。

if ($_SERVER['REQUEST_URI'] === '/my-old-page.php') {
  header("HTTP/1.1 301 Moved Permanently");
  header('Location: http://onitroad.com/');
  exit();
}

$_SERVER['REQUEST_URI'] 变量可能不是执行重定向的最佳方式,但它确实为我们提供了有关如何轻松执行重定向的基本概念。

退出函数放置在最后一行,确保之后的任何代码都不会运行——我们可以将其与 if 语句结合起来检查页面是否已移动。

日期:2020-06-02 22:17:31 来源:oir作者:oir