【问题标题】:PHP redirect based on IP AND referrer基于 IP 和引荐来源的 PHP 重定向
【发布时间】:2011-08-31 06:27:16
【问题描述】:

我正在尝试根据他们的 IP 和空白引荐来源将我网络中的用户重定向到我们网站上的特定登录页面。此代码有效,但最终进入重定向循环。如何跳出重定向循环以正确重定向用户?谢谢!

$visitor = $_SERVER['HTTP_REFERER'];
$clientip = $_SERVER['REMOTE_ADDR'];
$ip = a regex list of IPs;
if (empty($visitor))
{
    if (preg_match($ip, $clientip)) {
        header('Location: http://example.com');
            die();
            } 
}

【问题讨论】:

  • refer 是可选的标头。假设它是空的意味着这是他们在会话期间第一次访问该站点,这是一个非常糟糕的主意。
  • Quentin 所说的 - 另请注意,一些代理和“安全套件”将删除此标头,无论用户是否想要它们(因此并不总是“好吧,用户需要重新-然后启用它”)。

标签: php regex redirect ip referer


【解决方案1】:

向该用户添加一个您知道他们已被重定向的会话:

session_start();
$visitor = $_SERVER['HTTP_REFERER'];
$clientip = $_SERVER['REMOTE_ADDR'];
$ip = a regex list of IPs;
if (empty($visitor))
{

    //add on if they did not redirect yet.
    if (preg_match($ip, $clientip) && 
        (!isset($_SESSION['redirect']) || !$_SESSION['redirect'])) {
        $_SESSION['redirect'] = true;
        header('Location: http://example.com');
        die();
    } 

}

【讨论】:

  • 很好奇。为什么要为此创建服务器端文件?一个简单的 cookie 还不够吗?
  • @webbiedave 可以吃,会话不能那么容易
  • 完美。这正是我所需要的。非常感谢!
猜你喜欢
  • 2013-12-28
  • 2011-10-19
  • 2011-04-10
  • 1970-01-01
  • 1970-01-01
  • 2014-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多