2016-05-07 10 views
-2

codeigniters(3)redirect($ domain)を使用してexample.comをsubdomain.example.comにリダイレクトしようとしています。しかし、私が望むのは$ domainですが、ブラウザのアドレスバーにはbase_url/$ 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'); 
    } 

可能なサブドメインは数千あります。私はちょうどsubignain.example.comとしてブラウザのアドレスバーに表示されるように、サブドメインを追加してページをリロードするcodeigniterが必要です。

答えて

0

Derp! $ domain変数にhttp://を追加しました。これで、期待どおりに動作します。安置して申し訳ありません。

$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を追加すると、リダイレクトが正しく機能します。

関連する問題