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/ フォルダーを 1 つだけ使用して、サブドメイン名またはドメイン名でフォルダーをロードできますが、ルーティングを作成する方法、または 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

私の解決策は

$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 に答える
0

これは正常に機能するはずなので、「機能しない」と定義されています。デフォルトのアプリケーションをロードするだけですか?

var_dump() HTTP_HOST と比較してください。localhost:8080 または 8888 などで実行している場合は、HTTP_HOST に含まれるため、代わりに SERVER_NAME を使用することをお勧めします。

于 2010-07-19T08:23:15.210 に答える