Nous allons comment utiliser Wamp et Symfony 2 avec un nom de domaine pour les tests (donc en environnement de développement au sens Symfony) et accéder à notre environnement de tests avec une URL du type http://mon.domaine.com au lieu de http://localhost/monprojet/web/app_dev.php.

Nous partons donc d’un projet Symfony, stocké dans c:\wamp\www\monprojet avec un serveur Wamp installé et paramétré.

Procédure

Modifier le fichier hosts de Windows

Tout d’abord, il faut modifier le fichier hosts de Windows pour y ajouter le nom de domaine comme expliqué dans l’article Fichier Hosts dans Windows.

Modifier le fichier en ajoutant la ligne:

127.0.0.1    mon.domaine.com  

 Modifier le fichier de configuration de Wamp

Dans le fichier de configuration de Wamp, httpd.conf, après la ligne:

DocumentRoot "c:/wamp/www/"  

ajouter

NameVirtualHost 127.0.0.1  
 <VirtualHost 127.0.0.1>
     ServerName localhost
     DocumentRoot 'C:\wamp\www'
 </VirtualHost>
 <VirtualHost 127.0.0.1>
     ServerName mon.domaine.com
     DocumentRoot 'C:\wamp\www\monprojet\web'
     <Directory C:\wamp\www\monprojet\web>
         AllowOverride All
         Allow from All
    </Directory>
 </VirtualHost>

Modifier le fichier .htaccess

Il faut enfin changer le fichier .htaccess à la racine du projet symfony, c:\wamp\www\monprojet, avec:

 <IfModule mod_rewrite.c>
     RewriteEngine On
     RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
     RewriteRule ^(.*) - [E=BASE:%1]
     RewriteCond %{ENV:REDIRECT_STATUS} ^$
     RewriteRule ^app_dev.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]
     RewriteCond %{REQUEST_FILENAME} -f
     RewriteRule .? - [L]
     RewriteRule .? %{ENV:BASE}/app_dev.php [L]
  </IfModule>

Redémarrer Wamp. Visitez ensuite l’URL http://mon.domaine.com.

Sources

http://stackoverflow.com/questions/14920952/symfony2-redirect-localhost-app-dev-php-to-localhost http://zestedesavoir.com/tutoriels/324/developpez-votre-site-web-avec-le-framework-symfony2/397/astuces-et-points-particuliers/2012/deployer-son-site-symfony2-en-production/