.php重定向文件无法读取新文件信息

时间:2015-11-16 08:38:58

标签: php

对于最简单的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();
}

?>

2 个答案:

答案 0 :(得分:0)

使用header(Location:)进行重定向后,请使用die()exit()

 if ($time < "1400") {
    header("Location: http://eurogamer.net");
    die();
    }
    else {
    header("Location: http://ign.com");
    die();
    }

Refer

Php header location redirect not working

答案 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");
  }

?>

另外 - 要测试它,请尝试清除所有浏览器缓存。