вопрос настройки многодоменного кода - PullRequest
0 голосов
/ 19 июля 2010

Я пытаюсь выполнить многодоменную настройку 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 будут работать из папки main / application, которая находится в корневом каталоге ...

Вы можете мне помочь?

Ответы [ 2 ]

0 голосов
/ 20 июля 2010

мое решение

$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;
0 голосов
/ 19 июля 2010

Определено "не работает", так как это должно работать нормально. Просто загружает приложение по умолчанию?

var_dump () HTTP_HOST и сравните его. Если вы работаете на локальном хосте: 8080 или 8888 и т. Д., Который будет включен в HTTP_HOST, поэтому вы можете вместо этого использовать SERVER_NAME.

...