对于最简单的PHP If Statement,花了很多年的时间;这个基于时间的重定向:
<?php
$time = date("Hi");
if ($time < "1400") {
header("Location: http://eurogamer.net");
}
else {
header("Location: http://ign.com");
}
?>
对于AGES(我对PHP来说还不太新......)我无法弄清楚为什么重定向有效,但是在1400之后不会更新到新的URL。然后我测试了另一个设备和它DID工作,但在两者上,它似乎存储人们在他们第一次定向到PHP文件时看到的重定向,然后每次都将它们发送到那里。
由于此处的计划是根据一天中的时间将人们引导到不同的注册页面,如果人们重新访问该页面并将其定向到不再有效的旧注册页面,则会出现问题。
有没有办法在他们访问时强制执行这段代码的规则,还是我被困在这里?
已解决:将重定向从PHP标头功能切换到Javascript似乎解决了这个问题!
<?php
$time = date("Hi");
if ($time < "1400") {
echo "<script type='text/javascript'>window.location.href = 'http://eurogamer.net';</script>";
die();
}
else {
echo "<script type='text/javascript'>window.location.href = 'http://ign.com';</script>";
die();
}
?>
答案 0 :(得分:0)
使用header(Location:)
进行重定向后,请使用die()
或exit()
。
if ($time < "1400") {
header("Location: http://eurogamer.net");
die();
}
else {
header("Location: http://ign.com");
die();
}
答案 1 :(得分:0)
我认为您应该将其作为307重定向(临时)发送,以确保浏览器缓存确实发生干扰:
<?php
$time = date("Hi");
if ($time < "1400") {
header("HTTP/1.1 307 Temporary Redirect");
header("Location: http://eurogamer.net");
}
else {
header("HTTP/1.1 307 Temporary Redirect");
header("Location: http://ign.com");
}
?>
另外 - 要测试它,请尝试清除所有浏览器缓存。