假设这是在 Apache 上。
如果可能的话,我建议使用将所有请求.htaccess重新路由到“站点已关闭”消息的文件来执行此操作。
就像是:
RewriteRule (.*) /downmessage.php [L]
(请注意,任何图像资源也将被重定向)
与 PHP 端的标志检查和离线消息相比,它更快,而且它具有巨大的优势,即上传的图像和样式表等资源也不再可访问 - 否则它们可能通过缓存文件、URL、Google 图片命中...
在基于 PHP 的“离线”机制中,这些资源不会被阻止,如果有人知道 URL,某些资源仍然可以访问,这一事实很难向用户解释(“但我们关闭了网站,不是吗? ") 并且如果该网站因与已发布图像有关的法律问题而被删除(可能发生在每个人身上!),该图像仍然可以在网站所有者不知情的情况下访问。
这样做的缺点是它需要mod_rewrite服务器上的模块,并且 PHP 需要对.htaccess文件具有写访问权限:并非总是如此。
但是,虽然这种方法有其优点,但在实施任何更改之前,您的问题的基本前提还是值得一看的。您说检查删除 XML 文件花费了太多时间。我认为情况并非如此。file_exists()检查在内部缓存,即使对于非常多的请求也不应该导致任何明显的减速。平均 Drupal 或 WordPress 页面会在每个请求上加载数十个包含文件。相比之下,单个 file_exists就相形见绌了。