2016-05-07 4 views
-2

Я пытаюсь перенаправить example.com на subdomain.example.com, используя codeigniters (3) redirect ($ domain). Но в конечном итоге в адресной строке браузера находится base_url/$ domain, когда все, что я хочу, это $ domain.домен переименования Codeigniter для поддомена

Контроллер предназначен для просмотра 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.

ответ

0

Derp! Я добавил http: // в переменную $ domain var, и теперь она работает так, как ожидалось. Извините за asshatery.

$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 теперь перенаправление работает правильно.

Смежные вопросы