2

我有一个问题,因为我不知道从哪里开始寻找答案。Web 详细信息:Apache 5.3、Linux 3.2 内核、Ubuntu 12.04、Mysql 5.5、VPN 上的 PHP 5.3。

我目前正在通过 /etc/httpd.conf 文件控制对该网站的访问。(拒绝、允许、拒绝所有人,然后允许来自我的 IP)。此外,该站点具有商业 SSL 证书。

当网站“上线”时,我希望它在美国东部标准时间上午 8:00 自动切换为“允许所有人 - 公众”,然后在午夜切换为“只允许我”。

我不知道从哪里开始我的调查:cron?阿帕奇编码?php编码?什么?

建议任何人?

4

2 回答 2

2

您可以在没有 cron 作业的情况下执行此操作,并且无需使用这些 .htaccess 代码使 .htaccess 可写。

    RewriteEngine On
    RewriteCond %{TIME_HOUR} >00
    RewriteCond %{TIME_HOUR} <08
    RewriteCond %{REMOTE_ADDR} !^123\.255\.123\.255 #replace this with your IP
    RewriteRule ^.* - [F,L] 

上面的代码将为您工作,并且向您的访问者显示一条消息是一个更好的主意。

于 2013-03-28T06:29:08.473 回答
1

我建议不要修改 apache 配置,而是建议修改 ip 表规则的 cron 作业。这样用户就不会访问您的网站,您也不必担心人们可能会收到 404 或类似的问题。

当然,这也取决于您希望如何结束当前正在浏览的人的会话 - 即,使用 iptables 或 apache 配置更改将意味着某人可能在完成某事时突然得到 403。

如果您想提供友好的“停机维护”消息,您可能还需要考虑使用重写将访问者重定向到维护页面,从而在站点再次可用时通知用户。

将其编码到您的应用程序中可以让您给人们几分钟的时间来完成他们正在做的事情(例如,一个页面通知,告知用户他们在被强制删除之前在 x 分钟内完成他们正在做的事情)。

您可以将这两个选项结合起来:在 23:55,会显示一个横幅,告知人们该站点将在 00:00 - 08:00 期间不可用,然后使用 iptables/apache configs/rewrites 来限制访问。

另一个想法是,如果您有一个包含公共内容的网站,您可能会看到搜索爬虫的问题 - 即它们只能间歇性地访问该网站,这可能会以某种方式产生影响。(假设您想覆盖尽可能多的人,让您的网页被搜索引擎索引是很重要的)。

编辑@amit-该解决方案很棒,现在我知道了,我肯定会建议这是一个更好的选择。但是,除非您别无选择,否则我会避免放入 .htaccess(有关何时(不)使用 .htaccess 的更多详细信息,请参见此处)

于 2013-03-28T06:26:43.753 回答