如何将网站置于维护模式,同时仍只允许我访问



我即将升级我的整个网站,我正在寻找一种执行维护过程的方法,但仍允许我访问。

我正在考虑使用 htaccess。但是,这只会将访问例如索引.php的用户重定向到维护.php,对吧?如果用户访问仪表板.php,则不会有重定向。

在维护期间,我确实需要访问索引.php(只有我(。

我们使用LightTPD作为Web服务器,我使用"mod_magnet"来做这样的事情。Mod_magnet 允许我使用简单的 lua 脚本进行请求处理。我们有一个自动任务,它将在 Web 服务器文件系统的某个位置创建一个空文件。lua 脚本将在每次请求时检查此文件是否存在,如果找到该文件,则返回静态维护页面。脚本的重要部分如下所示:

--
-- maintenance page
--
local config = {
    ['maintenance'] = {
        ['allow'] = {
            '127.0.0.1'    -- just an example IP address
        }
    }
}
if lighty.stat(lighty.env['physical.doc-root'] .. 'maintenance') then
    tmp, _ = table.search(config.maintenance.allow, lighty.env['request.remote-ip'])
    if not tmp then
        -- maintenance modus
        lighty.content = {
            { filename = lighty.env['physical.doc-root'] .. 'error/maintenance.html' }
        }
        return 503
    end
end

在脚本中还有一个配置,仍然允许特定的IP地址通过,因此您仍然可以查看网站,例如从您的公司网络,而其他人只是获得维护页面。

该解决方案运行良好,并且由于自动化,如果您需要一个或多个Web服务器上的维护页面,则无关紧要。

如果您有兴趣,可以在此处找到有关"mod_magnet"的更多信息:

http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModMagnet

既然你提到了.htaccess,我假设你正在使用Apache作为你的Web服务器。正如其他人提到的,您可以使用.htaccess,也可以编辑该特定站点的VirtualHost conf。

无论哪种方式,我都建议按照乔纳森·桑普森(Jonathon Sampson(的建议使用mod_rewrite,但是,您要非常小心地确保发送正确的状态代码,因为GoogleBot等重要机器人希望看到503,告诉他们您目前正在维护中。

在这篇 AskApache 文章中,有一些非常清晰的说明可以完全按照您想要的方式进行操作。

相关内容

  • 没有找到相关文章

最新更新