我可以使用 .HTACCESS 仅在一天的特定时间重定向吗?
例如,如果getHours()
甚至,则重定向。
如果getHours()
甚至都不做任何事情。
我如何在.htaccess
?
var abcde = new Date();
if (abcde.getHours()%2==0){redirect here}
答案 0 :(得分:1)
.htaccess
的语法非常有限。我不知道使用纯Apache / .htaccess语法比较日期或时间的方法。这样的东西不是它的设计目的。
你可以做一些调用外部脚本的RewriteMap
,它会根据一天中的时间返回重写规则,但这很愚蠢。
使用服务器端语言(如PHP)进行检查,在那里进行检查,并在完成后执行标题重定向(或使用include()
包含所需内容)。
答案 1 :(得分:1)
啊,你看过http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritecond:有一个TIME_HOUR
属性你可以使用RewriteCond
。这将是繁琐的,但这样的事情会起作用:
RewriteCond %{TIME_HOUR} >=2
RewriteCond %{TIME_HOUR} <=8
意味着只有在一天中的时间是凌晨2点到早上8点之间才会执行Rewrite语句。对于您的示例,您可以尝试:
RewriteCond %{TIME_HOUR} =0 [OR]
RewriteCond %{TIME_HOUR} =2 [OR]
RewriteCond %{TIME_HOUR} =4 [OR]
RewriteCond %{TIME_HOUR} =6 [OR]
RewriteCond %{TIME_HOUR} =8 [OR]
RewriteCond %{TIME_HOUR} =10 [OR]
RewriteCond %{TIME_HOUR} =12 [OR]
RewriteCond %{TIME_HOUR} =14 [OR]
RewriteCond %{TIME_HOUR} =16 [OR]
RewriteCond %{TIME_HOUR} =18 [OR]
RewriteCond %{TIME_HOUR} =20 [OR]
RewriteCond %{TIME_HOUR} =22
繁琐,但不需要Javascript或其他任何类型。