Lecture 1 minute
Voici une petite astuce Nginx qui pourrait vous intéresser concernant la mise en place du multidomaine avec Magento et Nginx.
Supposons que vous disposez déjà d'un :
1 2 3 4 5 6 |
location [...] { [...] fastcgi_param MAGE_RUN_CODE base; fastcgi_param MAGE_RUN_TYPE store; [...] } |
En amont de votre fichier (avant l'instruction "server"), il vous suffit de créer un mapping du type :
1 2 3 4 5 6 7 |
map $host$uri $store_code{ default fr; ~^www.monsite.com.* base; ~^www.monsite.us.* us; ~^www.monsite.com/fr/.* base; ~^www.monsite.com/us/.* us; } |
Ce système permet en effet de mapper des variables standards Nginx à des variables personnalisées. Dans notre cas, nous relions donc, selon les cas, des noms de domaines avec ou sans sous-domaines, à une variable qui contiendra simplement notre code de magasin ($store_code).
Par la suite, dans notre configuration, il suffit d'utiliser :
1 2 3 4 5 6 |
location [...] { [...] fastcgi_param MAGE_RUN_CODE $store_code; fastcgi_param MAGE_RUN_TYPE store; [...] } |
Il faudra également bien penser à créer les configurations associées dans Magento pour que cela fonctionne.
De plus, il faudra également préciser à Nginx que s'il ne trouve pas un fichier, il doit passer par "/index.php". Cela permet notamment de gérer les sous-dossiers.