0

我正在尝试对 codeigniter 进行多域设置。

我需要支持这样的链接

www.site.com/users/username subdomain.site.com www.othersiteparkedonsite.com

在这 3 种不同的情况下,我想加载有关该案例的应用程序文件夹

index.php 中的以下代码仅适用于子域和域案例

// Application folder var
$myApp = '';

switch($_SERVER['HTTP_HOST'])
{
    case 'site.com':
        $myApp = 'application';
        break;

     default:
        $myApp = str_replace('.','_',$_SERVER['HTTP_HOST']);
        $myApp=str_replace('www_','',$myApp);
        $myApp='sites/'.$myApp;
    }

$application_folder = $myApp; 

但是如何识别第一个案例和子域????

使用代码,我只能使用根文件夹中的一个文件夹 /sites/ 并通过子域名或域名加载该文件夹,但是,如何进行路由,或使用 htaccess,以便我可以加载有关用户名、子域的应用程序文件夹,域和控制器???我的意思是我需要,如果我们去 www.site.com/users/usernameX

index.php 将加载 /usersites/usernameX 文件夹

如果子域来自

sub1.site.com 将加载应用程序文件夹

/subdomains/sub1_site_com

如果其他域停在同一文件夹中

www.otherdomain.com 将加载

/sites/otherdomain_com

www.site.com/somecontroller/somefunction 将从根目录中的主 /application 文件夹工作...

你能帮助我吗?

4

2 回答 2

0

定义为“不起作用”,因为这应该可以正常工作。它只是加载默认应用程序吗?

var_dump() HTTP_HOST 并进行比较。如果您在 localhost:8080 或 8888 等将包含在 HTTP_HOST 上运行,那么您可能希望使用 SERVER_NAME 代替。

于 2010-07-19T08:23:15.210 回答
0

我的解决方案是

$myApp = '';

    switch($_SERVER['HTTP_HOST'])
    {
        case 'multi.com':   





            $myApp = 'application';

            $uri_string=$_SERVER['REQUEST_URI'];

            if(strlen($uri_string)>6){


                $link_way=explode('/',$uri_string);
                //print_r($link_way);
                //var_dump($link_way);

                //проверяем если линк ведет к сайту юзера и у юзернейм состоит из более 4х знаков
                if($link_way[1]=='sites' and strlen($link_way[2])>=5){


                    $myApp='sites/usersites/'.$link_way[2];



                    }
                elseif($link_way[1]=='sites' and strlen($link_way[2])<5){
                    exit('Username should be more than 4 chars');

                    }






                }





            break;

         default:
            $myApp = str_replace('.','_',$_SERVER['HTTP_HOST']);
            $myApp=str_replace('www_','',$myApp);
            $myApp='sites/domains/'.$myApp;
        }

    $application_folder = $myApp;
于 2010-07-20T18:34:45.983 回答