最简单的方法 - 返回 503 服务不可用错误

这是最推荐的方法,因为它会向搜索引擎(如 Google、Bing)和访客明确表示你的网站正在“维护中”或“暂时不可用”,而不是永久关闭,这有助于保护你的 SEO 排名。

htaccess 关闭网站
(图片来源网络,侵删)

操作步骤:

  1. 找到 .htaccess 文件: 这个文件通常位于你的网站根目录(public_htmlwww),如果看不到它,请确保你的 FTP 客户端或文件管理器设置为显示隐藏文件。

  2. 编辑 .htaccess 文件: 在文件的最顶部,添加以下代码:

    # Maintenance Mode
    ErrorDocument 503 /maintenance.html
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
    RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000
    RewriteRule .* - [R=503,L]
  3. 创建维护页面: 在你的网站根目录下,创建一个名为 maintenance.html 的文件,这个文件是你向访客展示的维护提示页面,你可以自定义它的内容,

    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
        <meta charset="UTF-8">
        <title>网站维护中</title>
        <style>
            body { font-family: Arial, sans-serif; text-align: center; padding-top: 50px; }
            h1 { color: #333; }
            p { color: #666; }
        </style>
    </head>
    <body>
        <h1>网站正在维护升级</h1>
        <p>我们正在进行系统维护,预计很快恢复,给您带来的不便,敬请谅解!</p>
    </body>
    </html>
  4. (可选)设置白名单: 代码中的 RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000 这一行非常重要,它允许指定 IP 地址(请将 456.789.000 替换为你自己的公网 IP 地址)正常访问网站,这样,你就可以在维护时继续登录网站后台进行操作,而不会被重定向到维护页面。

    htaccess 关闭网站
    (图片来源网络,侵删)
  5. 保存并上传: 保存修改后的 .htaccess 文件和新建的 maintenance.html 文件,然后上传到你的服务器。

代码解释:

  • ErrorDocument 503 /maintenance.html:告诉服务器,当发生 503 错误时,向用户显示 maintenance.html 这个页面。
  • RewriteEngine on:开启 URL 重写引擎。
  • RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]条件,如果请求的 URI 不是 maintenance.html 文件本身(防止访问维护页面时被无限重定向),则执行下一步。
  • RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000条件,如果访问者的 IP 地址不是你指定的白名单 IP,则执行下一步。
  • RewriteRule .* - [R=503,L]规则,对于所有符合以上条件的请求,返回一个 503 状态码,并立即停止处理后续的规则(L 标志)。

直接显示维护页面(不返回 503 错误)

如果你不关心 SEO,只是想快速让用户看到一个静态的提示页面,可以使用这个更简单的方法。

操作步骤:

.htaccess 文件的开头添加以下代码:

# Simple Maintenance Page
RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
RewriteRule .* /maintenance.html [L]

这个代码的逻辑是:除了 maintenance.html 本身,所有其他请求都会被重定向到 maintenance.html 页面,这种方法简单直接,但不会返回 503 状态码。

htaccess 关闭网站
(图片来源网络,侵删)

关闭网站并显示特定 HTML 文件

这个方法与方法二类似,但更明确地使用 ErrorDocument

操作步骤:

.htaccess 文件的开头添加以下代码:

# Display a static HTML page for all errors
ErrorDocument 403 /maintenance.html
ErrorDocument 404 /maintenance.html
ErrorDocument 500 /maintenance.html
# 阻止所有访问
Order allow,deny
Deny from all

注意:这个方法非常“强硬”,它会阻止所有访问,包括搜索引擎的爬虫,除非你确定要永久关闭网站,否则不推荐使用。Deny from all 会直接拒绝所有请求。


如何恢复网站?

当你完成维护工作后,只需要将之前添加到 .htaccess 文件中的代码删除或注释掉即可。

注释方法:在每一行代码前面加上 号。

# Maintenance Mode
# ErrorDocument 503 /maintenance.html
# RewriteEngine on
# RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
# RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000
# RewriteRule .* - [R=503,L]

保存文件后,网站就会恢复正常访问。

总结与推荐

方法 优点 缺点 推荐场景
方法一 (503 错误) 专业,保护 SEO,支持 IP 白名单 稍微复杂一点 所有维护场景的首选
方法二 (直接重定向) 简单易用 不返回 503,对 SEO 不友好 临时快速关闭,不关心 SEO
方法三 (全面禁止) 彻底关闭网站 对 SEO 伤害大,无白名单机制 确定要永久关闭网站时使用

对于绝大多数情况,强烈推荐使用方法一,它是最专业、最安全、对搜索引擎最友好的方式。