Php 根据情况重定向到不同的目录

Php 根据情况重定向到不同的目录,php,Php,我想修改CMS中的注销触发器,根据条件将用户重定向到不同的目录。基本上,我有我的CMS,在它之外的子域m.site\u url.com我有一个移动版的网站 从逻辑上讲,如果用户注销移动站点,将其重定向到移动版本的主页是有意义的。同样,PC上的CMS也是如此 class Logout extends CodonModule { public function index() { Auth::LogOut(); header('Location: '

我想修改CMS中的注销触发器,根据条件将用户重定向到不同的目录。基本上,我有我的CMS,在它之外的子域
m.site\u 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('/'));
        }
    }
}

您可以使用以下方法获取子域的名称:

$sub_domain = array_shift(explode(".",$_SERVER['HTTP_HOST']));
并使用它来确定您当前是否在子域中,如果是,则是哪个子域-并相应地采取行动

编辑:


然后我会使用类似于
if(false!==strpos($subdomain,'m.)){
的东西吗?您会检查$sub_domain='m',原因是explode(“.”,$\u SERVER['HTTP_HOST'])将带有子域的域转换为数组,使用“.”作为分隔符,因此1个元素将包含“.”之前的位。[子域]这个数组上的array_shift()会将第一个元素移出它并返回给$sub_domain,所以如果它在你的移动站点上,$sub_domain会=='m',否则就不是了。所以
if(false!==strpos($subdomain,'m'){
?简单地说if($sub_domain=='m')){//这是一个移动站点,有很多方法可以实现同样的效果。我试过了,但它仍然重定向到主站点,有什么想法吗?编辑了这篇文章。
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('/'));
    }
  }
}