Een Magento Multistore creëer je door verschillende domeinen aan een enkele Magento installatie te koppelen. Hierbij heb je verschillende storeviews. Bijvoorbeeld als je je shop in verschillende talen wilt aanbieden. Om een specifieke domein te koppelen aan Magento moet je dit zo instellen dat het request vanuit de domein doorgezet wordt naar de specifieke storeview.

Dit artikel legt uit hoe je extra domeinen kunt koppelen aan de verschillende storeviews van je Magento shop op je Hypernode omgeving. Wil je een Magento Multistore opzetten door middel van submappen (storefronts), ga dan naar de Hypernode support documentatie voor meer informatie.

Een extra domeinnaam verwijzen naar je Hypernode omgeving

Stel je DNS in

De eerste stap is om het extra domein te verwijzen naar de Hypernode omgeving. Dit kun je via de DNS op twee manieren doen:

  1. DNS beheer overdragen aan Byte
  2. DNS verwijzen naar de wwwizers

Beide situaties worden hieronder uitgelegd:

DNS beheer overdragen aan Byte

Je kunt het beheer van de DNS-records voor je www, non-www en * aan Byte overdragen. Wij koppelen deze dan aan je Hypernode. Dit heeft als voordeel dat wanneer het IP van je Hypernode omgeving wijzigt, dit niet nadelig is voor de bereikbaarheid van je shop omdat wij de DNS beheren. Zo voorkom je dus downtime. Hypernode’s hebben een dedicated IP wat betekent dat het IP-adres niet wijzigt als je je pakket wijzigt, maar er zijn een aantal uitzonderingen. Als je tussen providers (van een Magento Professional naar een Excellence of andersom) of regio (van een datacentrum in Amsterdam naar een datacentrum in San Francisco) switched dan volgt er wel een IP-wijziging. De beste optie is dus altijd je domein naar Byte verhuizen en deze te koppelen aan de Hypernode.

Een voorwaarde hiervoor is dat je een pakket bij ons hebt voor het specifieke domein dat wilt verwijzen en de DNS naar ons verwijst.

Via onderstaande stappen kun je het beheer van de DNS overdragen aan Byte:

  • Log in op het Service Panel.
  • Klik op je Hypernode pakket.
  • Klik op het tabblad Instellingen.
  • Klik op SSL & DNS instellingen
  • Klik onder Domeinnaam bij het gewenste domein op Beschikbaar
  • Klik op Koppel domeinnaam aan deze Hypernode.
  • Klik op OK.
  • Je DNS beheer is nu overgedragen aan Byte.

Door bovenstaande stappen te volgen, worden je oude DNS records voor www, non-www en * aangepast naar de waarden van je Hypernode omgeving. Het non-www record zal rechtstreeks verwijzen naar  het IP-adres van je Hypernode en je www zal een CNAME worden naar de naam van je Hypernode. Er worden ook twee nieuwe records toegevoegd genaamd backup.domein.nl en backup.www.domein.nl met daarin de gegevens van je vorige DNS instellingen.

Wanneer je het DNS beheer weer wilt terugzetten naar de oude situatie volg je onderstaande stappen:

  • Log in op het Service Panel
  • Klik op je Hypernode pakket
  • Klik op het tabblad Instellingen
  • Klik op SSL & DNS instellingen
  • Klik onder Domeinnaam bij het gewenste domein op Gekoppeld
  • Klik op Ontkoppel domeinnaam van deze Hypernode
  • Klik op OK
  • Je DNS beheer is nu weer terug gezet naar de oude situatie

DNS verwijzen naar de wwwizers

Deze methode gebruik je wanneer je domein elders geregistreerd staat en je bij ons geen pakket hebt met de naam van het domein. Om dit externe domein te koppelen aan je Hypernode omgeving gebruik je de volgende DNS settings:

www.domein.nl CNAME naam.hypernode.io
domein.nl ALIAS of ANAME naam.hypernode.io

Mocht je domeinprovider geen ANAME of ALIAS ondersteunen, gebruik dan de onderstaande instellingen:

www.domein.nl CNAME naam.hypernode.io
domein.nl A 46.21.232.141
domein.nl A 46.21.233.172

Controleer je DNS instellingen

Controleer of dit is goed gegaan via de store front status check in het Service Panel. Volg hiervoor de volgende stappen:

  1. Log in op het Service Panel.
  2. Klik op je Hypernode pakket.
  3. Klik op het tabblad ‘’Analyse’’
  4. Ga naar Magereport Premium (Hypernode klanten)
  5. Klik op ‘’Check status’’.
  6. Hier zie je of de extra domeinen goed verwijzen naar Hypernode.

Controleer welke storeviews je hebt

Om de multistore correct in te stellen moet je eerst goed weten welke storeviews je precies hebt. Dit kan op twee manieren:

  • Via de Magento backend
  • Via Magerun

Wanneer je dat via de Magento backend wilt checken, ga je naar System → Manage Stores . In de meest rechterkolom (Store View Name) zie je dan precies de namen van je storeviews staan.
Je kunt dit ook checken via de SSH server. Je gebruikt hier het volgende commando:

magerun sys:store:list

Je krijgt nu een lijst te zien met alle gebruikte storeviews in je Magento site.

Pas je Nginx configuratie aan

Nu je weet welke storeviews je precies hebt kun je dit gaan instellen in je Nginx configuratie. Hiervoor navigeer je naar /data/web/nginx en open je het bestand http.magerunmaps. Hier staat het volgende in:

## Use this file to connect domainnames with storefronts.
## By default, these variables are unset and logic in Magento's
## index.php will take over.#### Use this file if you do not want to hack index.php. Follow the
## commented examples.
# should be named runcode :)
#map $http_host $storecode {
# hostnames;
# default mydefault_storecode;
# .yourshopA.com shop_a;
# .yourshopB.com shop_b;
#}
# should be named runtype :)
#map $http_host $storetype {
# hostnames;# default store;
# .yourshopA.com website;
# .yourshopB.com store;
#}

Voornamelijk het bovenste gedeelte hierbij is belangrijk:

#map $http_host $storecode {
# hostnames;# default mydefault_storecode;
# .yourshopA.com shop_a;
# .yourshopB.com shop_b;
#}

Dit zou je moeten zien als volgt:

  1. .domein.nl storeview;
  2. .domein.nl storeview;

Stel, je hebt het domein voorbeeld.fr en deze wil je verwijzen naar je storeview voorbeeld_fr . Het bestand zou dan er als volgt uitzien:

## Use this file to connect domainnames with storefronts.
## By default, these variables are unset and logic in Magento's
## index.php will take over.
##
## Use this file if you do not want to hack index.php. Follow the
## commented examples.
# should be named runcode :)
map $http_host $storecode {
hostnames; 
default mydefault_storecode;
 .voorbeeld.fr voorbeeld_fr;
}
# should be named runtype :)
map $http_host $storetype {
 hostnames;# default store;
 .yourshopA.com website;
 .yourshopB.com store;
}

Mocht je nog meer domeinen hebben die naar een specifieke storeview moeten verwijzen dan voeg je deze ook toe in dat gedeelte:

# should be named runcode :)
map $http_host $storecode {
hostnames; 
default mydefault_storecode;
.voorbeeld.fr voorbeeld_fr;
.voorbeeld.de voorbeeld_de;
.voorbeeld.co.uk voorbeeld.en; 
}

Het is dus een kwestie van het juiste domein koppelen aan de juiste code (storeview).

61