我正在尝试使用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。
答案 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,重定向正常工作。