将网站关闭并踢出用户进行升级的最佳方法是什么?

Dar*_*ein 9 php authentication

我想知道当你想要进行升级并且你有登录的用户时,人们如何踢人或阻止访问网站.

我的想法是将bool设置放在全局文件(例如设置文件)中,以确定该站点是否不可用.True可用,而false不可用.如果为false,则下次用户尝试访问该站点时,他们将被注销或仅显示不可用的消息.

我用这种方法可以看到两个问题:

  1. 如果用户只是填写长篇文章或写大部分文本(如SO上的新问题或答案),一旦他们提交表格,他们就会丢失这些信息.(不能总是保存它,因为可能已经更改了该表或代码的DB更改.)

  2. 可能:在繁忙的站点上,编辑全局文件,如果它超过几行,如果该页面在部分上载或保存时加载,则可能导致PHP解析错误.根据配置的不同,文件上可能还存在锁定问题.

另一种选择是在数据库中使用相同的设置.目前,我通常没有设置表,所以这将是表中唯一的东西,但我可以看到它更快,因为它避免了第二个问题.

您使用过的东西是否运作良好或其他任何想法?

我正在和LAMP合作.

sep*_*ehr 3

您可能想利用网络服务器重定向。对于 Apache,.htaccess用于将用户重定向(或重写 url)到静态维护页面的文件:

RewriteRule ^updating.*$ $0 [NC,U,QSA,L]
RewriteRule .* /updating/ [NC,U,QSA,R=307,L]
Run Code Online (Sandbox Code Playgroud)

如果您想在维护模式下自己访问该站点,您可以将特定且希望唯一的字符串附加到 useragent 标头:

RewriteRule ^updating.*$ $0 [NC,U,QSA,L]
RewriteCond %{HTTP:User-Agent} !MY-CUSTOM-UA-STRING [NC]
RewriteRule .* /updating/ [NC,U,QSA,R=307,L]
Run Code Online (Sandbox Code Playgroud)

以下是在 Firefox 中操作用户代理的方法:

创建一个about:config名为“MY-CUSTOM-UA-STRING”的新密钥general.useragent.extra.XYZ并将其设置为“MY-CUSTOM-UA-STRING”或您希望的任何其他值。Firefox 会将字符串附加到 UA。

如果使用 Chrome,请尝试新的移动模拟功能,该功能允许您直接从开发工具修改用户代理字符串。

正如您自己提到的,替代解决方案可能是在服务器端设置配置标志。在这样做之前,我建议您保存用户在网站上正在进行的所有操作,并让她在维护期后恢复这些操作。另外,提前让他们知道维护的具体时间。