为什么需要维护模式?
当网站需要更新内容、修复漏洞或迁移服务器时,启用维护模式可以:
- 避免用户看到未完成的页面
- 防止数据库写入冲突
- 保持503状态码避免SEO降权
- 展示专业的企业形象
方案一:WordPress插件实现(推荐非技术用户)
安装WP Maintenance Mode插件后:
- 进入插件设置页面
- 启用维护模式开关
- 自定义维护页面内容
- 设置HTTP 503状态码
// 插件自动生成的维护模式代码示例
add_action('template_redirect', 'maintenance_mode');
function maintenance_mode() {
if (!current_user_can('edit_themes')) {
wp_die('网站维护中,请稍后访问', '维护提示', array('response' => 503));
}
}
SEO提示:务必勾选”允许搜索引擎爬虫访问”选项
方案二:Nginx服务器配置(高性能方案)
编辑Nginx配置文件(通常位于/etc/nginx/sites-available/your_site
):
server {
listen 80;
server_name example.com;
location / {
return 503;
}
error_page 503 @maintenance;
location @maintenance {
root /var/www/maintenance;
try_files $uri /maintenance. =503;
}
}
创建维护页面:
mkdir -p /var/www/maintenance
echo "<h1>系统升级中</h1>" > /var/www/maintenance/maintenance.
重载配置:sudo nginx -s reload
方案三:PHP原生实现(通用方案)
在网站入口文件(通常是index.php)顶部添加:
<?php
// 维护模式开关
$maintenance = true;
if ($maintenance && !in_array($_SERVER['REMOTE_ADDR'], ['127.0.0.1', '192.168.1.1'])) {
http_response_code(503);
header('Retry-After: 3600'); // 1小时后重试
include 'maintenance.';
exit;
}
?>
注意事项:
- 白名单IP需要替换为管理员IP
- 维护页面需包含
- 建议设置合理的Retry-After时间
最佳实践建议
- 状态码必须使用503:避免搜索引擎误判为死链
- 保留CSS/JS资源访问:确保维护页面正常显示
- 预估维护时长:在页面明确告知用户恢复时间
- 邮件通知:对注册用户发送维护通知
- 备份原配置:修改前备份.htaccess或nginx.conf
评论