9 votes

Existe-t-il un moyen facile de créer des sous-domaines sur Codeigniter ?

Existe-t-il un moyen simple de créer des sous-domaines sur codeigniter comme api.site.com ?

8voto

bradym Points 2832

L'approche à adopter dépend de la différence entre le sous-domaine et le site principal. S'ils sont très similaires et utilisent la même base de code :

$config['base_url'] = 'http://'.$_SERVER['HTTP_HOST'].'/';

Si vous souhaitez que certains paramètres soient différents sur un autre sous-domaine, vous pouvez créer un fichier de configuration comme suit :

switch($_SERVER['HTTP_HOST']){
   case 'www.example.com':
       // settings specific to www subdomain
       $config['foo'] = 'bar';
   break;

   case 'apl.example.com':
       // settings specific to apl subdomain
       $config['foo'] = 'baz';
   break;
}

Une autre approche consisterait à créer un dossier d'application distinct pour le sous-domaine, mais pointant vers le même dossier système. Si vous organisez votre système de fichiers comme ceci :

example.com
  common
    system
    application
  www
    htdocs
    application
  apl
    htdocs
    application

Vous pourriez alors faire pointer le fichier index.php de chaque dossier htdocs vers le répertoire common/system. Vous pouvez également placer le code que vous souhaitez partager entre tous les sous-domaines dans common/application et les inclure dans votre code.

2voto

fire Points 9036

Vous devez créer le sous-domaine dans votre DNS ou bien configurer un joker pour que tout sous-domaine fonctionne d'abord.

Une fois que vous l'avez mis en route, je suppose qu'il suffit de changer le base_url dans votre fichier de configuration.

if ($_SERVER['SERVER_NAME'] == "api.blah.com") {
    $config['base_url'] = "http://api.blah.com/";
}
else {
    $config['base_url'] = "http://www.blah.com/";   
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X