301 或 302 使用 PHP 重定向

我正在考虑在网站启动阶段使用以下代码向用户显示“向下维护”页面,同时向我显示网站的其余部分。

有没有办法向搜索引擎显示正确的302重定向状态,或者我应该寻找另一种基于的方法?.htaccess

$visitor = $_SERVER['REMOTE_ADDR'];
if (preg_match("/192.168.0.1/",$visitor)) {
    header('Location: http://www.yoursite.com/thank-you.html');
} else {
    header('Location: http://www.yoursite.com/home-page.html');
};

答案 1

对于 ,即临时重定向,请执行以下操作:302 Found

header('Location: http://www.example.com/home-page.html');
// OR: header('Location: http://www.example.com/home-page.html', true, 302);
exit;

如果您需要永久重定向,又名:,请执行以下操作:301 Moved Permanently

header('Location: http://www.example.com/home-page.html', true, 301);
exit;

有关更多信息,请查看 PHP 手册中的标头函数 Doc。另外,使用时不要忘记打电话exit;header('Location: ');

但是,考虑到您正在进行临时维护(您不希望搜索引擎索引您的页面),建议您返回带有自定义消息的a(即您不需要任何重定向):503 Service Unavailable

<?php
header("HTTP/1.1 503 Service Unavailable");
header("Status: 503 Service Unavailable");
header("Retry-After: 3600");
?><!DOCTYPE html>
<html>
<head>
<title>Temporarily Unavailable</title>
<meta name="robots" content="none" />
</head>
<body>
   Your message here.
</body>
</html>

答案 2

以下代码将发出 301 重定向。

header('Location: http://www.example.com/', true, 301);
exit;

推荐