我希望通过在某个条件下将用户重定向到其他目录来修改CMS中的注销触发器。基本上,我有我的CMS,在子域m.site_url.com
之外我有一个移动版本的网站。
逻辑上,如果用户在移动网站上注销,则将用户重定向到移动版的主页是有意义的。同样,在PC上也可以使用CMS。
class Logout extends CodonModule
{
public function index()
{
Auth::LogOut();
header('Location: '.url('/'));
}
}
以上注销用户并将其重定向到指定的url
,这是CMS的主页。因此,我想要一个if / else语句,如果用户注销子域,它们将被重定向到子域的索引页面。我怎样才能做到这一点?我试图检测到URL并将其重定向,但我觉得我失败了。
我想要一个理想的解决方案,我可以应用于其他各个方面。在登录过程中它可能变得至关重要。通常情况下,如果密码错误,则会显示CMS中的消息页面,但同样,将移动用户重定向到桌面站点等也毫无意义。
class Logout extends CodonModule
{
public function index()
{
Auth::LogOut();
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (false !== strpos($url,'m.site')) {
{
header('Location: http://m.site_url.com/index.php');
}
else
{
header('Location: '.url('/'));
}
}
}
答案 0 :(得分:1)
您可以使用以下命令获取子域名:
$sub_domain = array_shift(explode(".",$_SERVER['HTTP_HOST']));
并使用它来确定您当前是否在子域中,如果是,那么是什么 - 并采取相应的行动。
编辑:
class Logout extends CodonModule
{
public function index()
{
$sub_domain = array_shift(explode(".",$_SERVER['HTTP_HOST']));
die($sub_domain); //debug the value
if($sub_domain == 'm')
{
Auth::LogOut();
header('Location: http://m.site_url.com/index.php');
}
else
{
Auth::LogOut();
header('Location: '.url('/'));
}
}
}