php - 实现使网站离线?

标签 php performance offline-mode

现在不需要这样做,但要考虑 future ......

通过自定义编码的 cms 让网站“离线”一点点的方法是什么?意思是让管理员能够登录到管理面板,在框中键入消息,然后提交表单。然后该消息将显示给任何用户而不是任何其他页面,除非该用户是管理员。

我以前做过这个,如果 xml 文件存在,然后从 xml 文件加载内容,并在消息后面放置一个构造背景,并带有一个只允许管理员登录的登录框。当管理员输入消息时将文本存储到 xml 中的框中。当他们让网站“起死回生”时,它只会删除 xml 文件。

唯一的问题是,一旦网站变大,它就会有更多的点击量,并且检查文件是否存在,每个页面的加载速度都会变慢。谁有更好的解决方案?

谢谢。

最佳答案

假设这是在 Apache 上。

如果可能的话,我建议使用 .htaccess 文件执行此操作,该文件将所有请求重新路由到“站点已关闭”消息。

类似于:

RewriteRule (.*) /downmessage.php [L]

(注意任何图片资源也会被重定向)

与 PHP 端的标志检查和离线消息相比,这更快,而且它具有巨大的优势,即上传的图像和样式表等资源也不再可用 - 否则它们可能通过缓存文件、URL , 谷歌图片命中...

在那些资源未被阻止的基于 PHP 的“离线”机制中,一些资源仍然可以访问的事实如果有人知道 URL 很难向用户解释(“但我们把网站关闭了,不是吗?”)并且如果网站因为发布图像的法律问题而被关闭(可能发生在每个人身上!),图像仍然可以在网站所有者不知情的情况下访问。

这样做的缺点是它需要服务器上的 mod_rewrite 模块,并且 PHP 需要对 .htaccess 文件具有写入权限:两者并非总是如此.

但是,虽然这种方法有其优点,但在实现任何更改之前,您的问题的基本前提值得一看。您说检查删除 XML 文件花费了太多时间。我认为情况并非如此。 file_exists() 检查被缓存在内部,并且应该不会导致任何明显的减速,即使对于非常多的请求也是如此。一般的 Drupal 或 WordPress 页面会在每次请求时加载数十个包含文件。相比之下,单个文件_存在相形见绌

关于php - 实现使网站离线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3636224/

相关文章:

php - 标量值作为数组?

php - 我想将数据从单个表单插入到多个表中,两个表都包含关系

python - 为什么我的 Go 程序在以下场景中的性能比预期差很多?

c++ - 这种 CUDA 加速是可以预料的吗?

python - 如何在 python 中使用 Plotly 离线模式绘制条形图?

php生成图像?

php - 如何使用jquery ajax php上传文件

java - Java API 中的循环计数器

javascript - 下载并本地保存背景图像,以便使用 imgcache.js 在 Ionic/Angularjs 中离线使用

excel - 离线数据输入选项