Associer un sous-domaine à une application symfony

Coté serveur web

Il faut soit  créer des virtual host pour tous vos sous-domaine.

Soit créer un seul virtual host en utilisant des wildcards dans le ServerAlias, du coup tous les sous-domaines pourraient correspondre à une application, plus besoin de créer autant de virtual hosts que de sous-domaine. Il doit même être possible d’utiliser les wildcards dans la déclaration du domaine dans le gestionnaire de dns.

ServerName domain.tld
ServerAlias *.domain.tld

Coté symfony

Il faut renommer le fichier web/index.php en web/frontend.php
Puis re-créer le fichier web/index.php en y mettant le code qui permettra de choisir l’application
en fonction du sous domaine.
Voici un exemple, il suffit de modifier le switch() pour l’adapter à vos besoins :

require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
// Trouve le sous-domaine
list($subdomain, $domain, $tld) = explode('.', $_SERVER['HTTP_HOST']);
 
// En deduit l'application
switch($subdomain)
{
    case "documentation":
        $app = "documentation";
    break;
 
    default:
        $app = "frontend";
    break;
}
$configuration = ProjectConfiguration::getApplicationConfiguration($app, 'prod', false);
sfContext::createInstance($configuration)->dispatch();

Read 2 comments

  1. Pingback: Les tweets qui mentionnent Associer un sous-domaine à une application symfony — Développement Web Libre -- Topsy.com

Laisser un commentaire