2010-07-19 6 views
0

J'essaie de faire une configuration multidomaine de codeigniter.codeigniter multidomain question d'installation

J'ai besoin de soutenir des liens comme celui-ci

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

dans ce 3 cas différents que je veux charger l'application dossier en ce qui concerne le cas

code suivant dans index.php ne fonctionnera que si le cas de sous-domaine et le domaine

// 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; 

mais comment identifier le premier cas et sous-domaines ???? En utilisant le code up je peux faire avec un seul dossier/sites/dans le dossier racine et charger par nom de sous-domaine ou nom de domaine le dossier, mais comment faire le routage, ou avec htaccess pour que je puisse charger le dossier de l'application concernant le nom d'utilisateur, le sous-domaine, le domaine et le contrôleur ??? Je veux dire qu'il me faut, si nous allons à www.site.com/users/usernameX

index.php chargera/usersites/UsernameX dossier

en cas de sous-domaines de

sub1.site. com chargera dossier de l'application

/subdomains/sub1_site_com

dans le cas d'autres domaines parqués sur le même dossier

www.otherdomain.com chargera

/sites/otherdomain_com

et

www.site.com/somecontroller/somefunction travaillera à partir du dossier principal/d'application qui est à la racine ..

Pouvez-vous m'aider?

Répondre

0

ma solution est

$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

Défini "ne fonctionne pas" car ce devrait fonctionner correctement pour. Est-ce qu'il charge simplement l'application par défaut?

var_dump() HTTP_HOST et le comparer. Si vous exécutez localhost: 8080 ou 8888 etc. qui sera inclus dans HTTP_HOST, vous pouvez utiliser SERVER_NAME à la place.

+0

en fait tous les dossiers sont simlinks à l'intérieur des dossiers d'application, je fait contrôleur content.php universel, qui, selon alias du site donnera un contenu spécifié .... –

+0

Qu'est-ce que cela a à voir avec le prix du poisson? –

+0

ok, je pourrais arranger ainsi le bon dossier d'application est chargé. Mais j'ai un problème avec les liens Comment faire un tel routage que www.site.com/sites/utilisateurX/contrôleur/fonction/var1/var2 comporterons comme il était www.site.com/controller/function/var1/var2 ??? –