2012-04-24 74 views
0

我有一個相當簡單的問題,我認爲這會很容易設置,但證明很困難。通過.htaccess運行Magento商店

我有一個Magento安裝,我希望它有2個網站,每個網站上有兩種語言。然後,我去網球英國域,它加載了英國商店。如果我進入法國領域,它會加載法國商店。

這是它是如何工作的,現在(錯誤):

Tennis UK (website) 
Tennis UK (store & store views) 

Tennis FR (website) 
Tennis FR (store & store views) 

Volleyball UK (website) 
Volleyball UK (store & store views) 

Volleyball FR (website) 
Volleyball FR (store & store views) 

這是我更喜歡它的工作(正確):

Tennis (website) 
Tennis UK/Tennis FR (stores & store views) 

Volleyball (website) 
Volleyball UK/Volleyball FR (stores & store views) 

在htaccess的我正在運行一個腳本來運行正確的網站,但我認爲如果需要,我還應該能夠運行商店代碼,如下所示:

SetEnvIf Host www\.tennisukdomain\.co.uk MAGE_RUN_CODE=tennis_uk 
SetEnvIf Host www\.tennisukdomain\.co.uk MAGE_RUN_TYPE=store 
SetEnvIf Host ^tennisukdomain\.co.uk MAGE_RUN_CODE=tennis_uk 
SetEnvIf Host ^tennisukdomain\.co.uk MAGE_RUN_TYPE=store 

但由於某種原因,這不起作用。有沒有人知道正確的方式來實現這個工作。通過加載商店視圖而不是網站,每次都會減少管理員必須完成的配置數量。

任何幫助非常感謝。

+0

Magento的哪個版本? 「商店」是默認的運行類型,順便說一句。 – benmarks 2012-04-24 12:35:31

+0

它的版本是1.6.2 – 2012-04-24 12:36:03

+0

快速調試:破解open * index.php *和'var_dump($ _ SERVER)'來檢查你的'mod_env'指令是否工作正常。 – benmarks 2012-04-24 12:39:11

回答

-1

您可以通過代碼來完成。例如:

的index.php

$host = explode(':', $_SERVER['HTTP_HOST']); 
$dname = substr($host[0], -3,3); 

switch ($dname) { 
case '.uk': 
    $store = 'tennis_uk'; 
    break; 
case '.fr': 
    $store = 'tennis_uk'; 
    break; 
default: 
    $store = ''; 
} 

Mage::run($store);