经过一番研究,我配置了 IPB 重定向,因为板 url 与当前 URL/子域不匹配。(我的情况)
所以......有一种解决方法,不是很好但至少可以工作,并且是单线解决方案:
<?PHP
$_SERVER['HTTP_HOST_R'] = $_SERVER['HTTP_HOST']; // Keep original info in another index.
$_SERVER['HTTP_HOST'] = "www.your-ipb-forum.com"; // Work-around
$forumPath = '../forum'; //FORUM FOLDER
define( 'IPS_ENFORCE_ACCESS', TRUE ); // Important so it does not redirect to forums
define( 'IPB_THIS_SCRIPT', 'public' );
require_once( $forumPath.'/initdata.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' );
$ipbRegistry = ipsRegistry::instance();
$ipbRegistry->init();
// Init done
$member = IPSMember::load($memberName, 'all', 'username');
print_r($member); // For demo purposes only
第三行是我们在 IPB 上作弊的解决方法。
第二行是将 $_SERVER['HTTP_HOST'] 数据“移动”到 $_SERVER['HTTP_HOST_R'] 因此如果您在应用程序中需要当前(真实)URL,您可以使用此变量,因为 HTTP_HOST 已更改。(需要解决方法)。