我有一个 wordpress 网站,我正试图锁定一组 IP。我将以下代码用作 index.php 中的第一件事:(此处为 IP 混淆)
$matchedIP = 0;
$IP = $_SERVER['REMOTE_ADDR'];
$validIPs = array("x.x.x.x", "x.x.x.x", "x.x.x.x", "x.x.x.x", "x.x.x.x");
foreach($validIPs as $validIP)
{
if($IP == $validIP)
{
$matchedIP = 1;
}
}
if($matchedIP == 0)
{
header('Location: http://google.com.au');
}
IP 检查工作正常,因为各种断言可以确认。不起作用的是重定向,它永远不会发生。完整的 index.php 如下:
<?php
$matchedIP = 0;
$IP = $_SERVER['REMOTE_ADDR'];
$validIPs = array("x.x.x.x", "x.x.x.x", "x.x.x.x", "x.x.x.x", "x.x.x.x");
foreach($validIPs as $validIP)
{
if($IP == $validIP)
{
$matchedIP = 1;
}
}
if($matchedIP == 0)
{
header('Location: http://google.com.au');
}
/**
* Front to the WordPress application. This file doesn't do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*/
/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
define('WP_USE_THEMES', true);
/** Loads the WordPress Environment and Template */
require('./wp-blog-header.php');
//require('./phpinfo.php');
奇怪的是,当注释掉 wordpress blog-header 要求并包含一个简单的 phpinfo 页面的要求时,重定向的行为符合预期。
我是否误解了 PHP 的处理方式以某种方式工作?当然,它甚至应该在考虑加载下面的任何所需文件之前点击重定向?
编辑:Windows IIS7 后端,PHP 版本 5.2.17,Wordpress 版本 3.4.2