Codeigniter将域重定向到子域

时间:2016-05-07 16:50:53

标签: php codeigniter redirect

我正在尝试使用codeigniters(3)重定向($ domain)将example.com重定向到subdomain.example.com。但是我在浏览器地址栏中最终得到的是base_url / $ domain,而我想要的只是$ domain。

控制器设置为查看URL并确定用户是否在没有子域的情况下访问过。如果是这种情况,则将它们重定向到一个视图,询问它们来自何处。然后将这些数据传递给同一个控制器,并使用$ _POST告诉它们来自何处。

$this->load->helper('url');
    $subdomain_arr = explode('.', $_SERVER['HTTP_HOST'], 2);

    $subdomain = $subdomain_arr[0];
    if ($_POST != NULL)
    {
        $post = $_POST; 
        $subnames = $this->sendy->subName($post);//returns subdomain 

        foreach ($subnames as $subname) 
        {
            $sub = $subname->subdomain;
        }

        $subdomain = $sub;
        $period = ".";
        $domain = $subdomain.$period.$subdomain_arr[0].$period.$subdomain_arr[1];
        redirect($domain, 'auto');
    }

有数千个可能的子域名。我只需要codeigniter来预先添加子域并重新加载页面,以便URL在浏览器地址栏中显示为subdomain.example.com。

1 个答案:

答案 0 :(得分:0)

DERP!我将http://添加到$ domain var,现在它按预期工作。抱歉,这个蠢货。

$subdomain_arr = explode('.', $_SERVER['HTTP_HOST'], 2);

    $subdomain = $subdomain_arr[0];
    if ($_POST != NULL)
    {
        $post = $_POST; //this is the library name
        $subnames = $this->sendy->subName($post);

        foreach ($subnames as $subname) 
        {
            $sub = $subname->subdomain;
        }

        $subdomain = $sub;
        $period = ".";
        $http = "http://";
        $domain = $http.$subdomain.$period.$subdomain_arr[0].$period.$subdomain_arr[1];
        redirect($domain, 'location');
    }

现在添加了$ http,重定向正常工作。