Ani*_*shi 1 ip redirect cakephp
我正在开发CakePHP应用程序.我正在尝试根据用户的IP地址将用户重定向到管理员URL,为此我在app_controller.php中使用此代码
if(env('REMOTE_ADDR')=='foo') {
$this->redirect(array('action'=>'index', 'admin'=>1));
echo $html->link(__('Logout', true), array('controller'=> 'users', 'action'=>'admin_index'));
}
Run Code Online (Sandbox Code Playgroud)
一旦条件匹配,我就会得到一个重定向循环.:(
这是因为您的app控制器会先触发代码.您编写的代码基本上转换为
另一件事,你在重定向后似乎回应了一个链接,这没有任何意义.
你可能想要的是这样的
$url = 'Wherever you are redirecting to';
if (env('REMOTE_ADDR') == 'foo' && $this->params['url']['url'] != $url) {
$this->redirect($url);
}
Run Code Online (Sandbox Code Playgroud)
此外,当你这样做时,你$this->redirect(array('action'=>'index', 'admin'=>1));
实际上是重定向到你所在的URL的索引操作.这是你想要做的吗?如果是这样,您需要将支票修改为类似的内容
$url = 'Wherever you are redirecting to';
if (env('REMOTE_ADDR') == 'foo' && $this->params['action'] != 'index' && $this->params['admin'] != 1) {
$this->redirect($url);
}
Run Code Online (Sandbox Code Playgroud)