从美国东部时间早上8点到午夜午夜,将所有人的网站访问权限改为我的IP,从午夜到早上8点

时间:2013-03-28 05:29:08

标签: php apache cron

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

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

当网站“直播”时,我希望它在美国东部时间上午8:00自动切换为“允许所有公众”,然后在午夜切换到“仅允许我”。

我无法弄清楚从哪里开始调查:cron? Apache编码? PHP编码? 什么?

建议任何人?

2 个答案:

答案 0 :(得分: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] 

以上代码适用于您,最好还向访问者显示消息。

答案 1 :(得分:1)

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

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

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

将其编入您的应用程序可以让您给人们几分钟的时间来完成他们正在做的事情(即页面通知建议用户他们x分钟完成他们正在做的事情然后被强行删除)。

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

另一种想法是,如果您有一个包含公共内容的网站,您可能会看到搜索抓取工具的问题 - 即他们只能间歇性地访问该网站,这可能会产生某种影响。 (假设您希望尽可能多地吸引用户,将搜索引擎编入索引的页面非常重要。)

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