Wenn der Shop unter verschiedenen Top-Level-Domains erreichbar sein soll und Magento stets den richtigen Gültigkeitsbereich laden soll, kann die Domain-Weiche direkt in .htaccess umgesetzt werden statt die index.php zu bearbeiten.
Im folgenden Beispiel wird beim Aufruf des Shops unter xonu.de und www.xonu.de die StoreView mit dem code base und beim Aufruf von xonu.uk und www.xonu.uk entrsprechend StoreView mit dem code en geladen:
SetEnvIf Host www\.xonu\.de MAGE_RUN_CODE=base SetEnvIf Host www\.xonu\.de MAGE_RUN_TYPE=store SetEnvIf Host xonu\.de MAGE_RUN_CODE=base SetEnvIf Host xonu\.de MAGE_RUN_TYPE=store SetEnvIf Host www\.xonu\.uk MAGE_RUN_CODE=en SetEnvIf Host www\.xonu\.uk MAGE_RUN_TYPE=store SetEnvIf Host xonu\.uk MAGE_RUN_CODE=en SetEnvIf Host xonu\.uk MAGE_RUN_TYPE=store
Wenn man sich mit regulären Ausdrücken wohl fühlt, lassen sich die Bedingungen auf vier Zeilen komprimieren:
SetEnvIf Host (www\.)?xonu\.de MAGE_RUN_CODE=base SetEnvIf Host (www\.)?xonu\.de MAGE_RUN_TYPE=store SetEnvIf Host (www\.)?xonu\.uk MAGE_RUN_CODE=en SetEnvIf Host (www\.)?xonu\.uk MAGE_RUN_TYPE=store
Die in .htaccess gesetzten Umgebungsvariablen werden in der index.php in den letzten Zeilen ausgewertet:
/* Store or website code */ $mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : ''; /* Run store or run website */ $mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store'; Mage::run($mageRunCode, $mageRunType);
Aus der Bedingung in der index.php entnehmen wir, dass wir uns in der .htaccess nicht um „alle anderen Fälle“ kümmern müssen. Wird der Shop unter einer anderen Domain aufgerufen, die in den Bedingungen nicht berücksichtigt wurde, wird der Standard-StoreView geladen.
Davon ausgehend, dass der deutschsprachige StoreView mit dem Code base standardmäßig geladen wird (und pro Zeile mehrere Variablen gesetzt werden können), lässt sich die Domain-Weiche auf eine Zeile reduzieren:
SetEnvIf Host (www\.)?gaiwan\.(co\.)?uk MAGE_RUN_CODE=uk MAGE_RUN_TYPE=store