我正在考虑在网站发布阶段使用以下代码向用户展示down for maintenance页,同时向我展示网站的其余部分.

有没有办法向搜索引擎显示正确的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');
};

推荐答案

对于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手册中的header function Doc.另外,使用header('Location: ');时不要忘记拨打exit;

但是,考虑到您正在进行临时维护(您不希望搜索引擎为您的页面编制索引),建议返回带有自定义消息的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>

Php相关问答推荐

按制造商、型号和年份范围判断数据的存在性

从WooCommerce Checkout Country Select2下拉列表中重新排序国家/地区

如何确保所有语言文件都使用Laravel中的新密钥进行更新?

在WooCommerce管理中 for each 运输方法设置添加自定义字段

ANTLR4-lexer如何消耗更多的 token 并停止现有规则?

以编程方式同步 WPML 翻译更改 Woocommerce 产品销售价格

如果所有请求都通过index.php路由,如何使用htaccess文件强制使用HTTPS?

显示 woocommerce 中所选变体的属性术语描述

按类别层次 struct 过滤 Laravel 集合

wp_insert_post() 和 WordPress 中查询字符串的多个帖子

从 XAMPP 运行 shell 脚本时,意外标记(附近出现语法错误

根据小计向 WooCommerce Checkout 添加佣金

用自定义代码替换 WooCommerce 单一产品简短描述

批量更新 WooCommerce 中所有产品的特定自定义字段

WooCommerce - 调用功能ID不正确.不应直接访问订单属性

PHP:如何将多列sql查询结果转换成数组

自定义主键值未正确显示

为什么 AJAX 请求没有通过 is_ajax_request() codeigniter 的条件?

构建 [Controller] 时目标 [Interface] 不可实例化

在 EasyAdmin 中添加全局操作,将我的按钮放在表格下方而不是上方