Existe-t-il un moyen simple de créer des sous-domaines sur codeigniter comme api.site.com ?
Réponses
Trop de publicités?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.
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/";
}