Domain-Weiche in .htaccess

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

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.