重定向多个页面
如果你有很多页面需要重定向,上面的例子不太合适——重定向多个页面的一种方法是首先将它们列在一个数组中,然后循环遍历这个数组。
数组可以很容易地构造,最简单的方法之一是像下面那样做。
$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 重定向是通过向浏览器发送 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