2013-06-18 32 views
3

我試圖建立一個基於語言的多個域的商店:例如mysite.com(英文),mysite.it(意大利語),mysite.ru(俄語)。Magento和多個域

我跟隨thisthis,但我認爲這可能是一個非magento問題。

我的Apache設置如下:

<VirtualHost *:80> 
ServerName mysite.rb.com 
ServerAlias mysite.it 
ServerAlias mysite.ru 
... 

的問題是,如果我打印的記錄HTTP主機,它總是:

[HTTP_HOST] => mysite.com 

另外,如果我鍵入mysite.itmysite.ru 我在做什麼錯誤的Apache?我應該聲明另一個虛擬主機而不是別名?

如果我無法正確識別請求的主機,我也無法顯示正確的存儲。

PS:不安全和安全的基本URL已設置爲正確的域名,分別爲適當的語言

編輯:現在我相信它不是一個Apache的問題。我刪除了我的項目的目錄,並且apache沒有發送302重定向。所以Magento自己處理這個重定向

+0

您是否使用.htaccess設置商店運行或index.php?請說明你如何配置它們。使用.htaccess時,檢查是否啓用了「mod_setenvif」。並非所有託管商都支持此方法。 –

+0

這聽起來像您的商店代碼沒有正確設置。你如何真正設置它?的.htaccess?的index.php? –

+0

現在已解決。這是apache config的setEnv問題 –

回答

1

apache虛擬主機設置是錯誤的。您需要單獨的虛擬主機條目,每個域,如下所示:

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/http 
    ServerName domain0.com 
</VirtualHost> 

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/http 
    ServerName domain1.com 
</VirtualHost> 

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/http 
    ServerName domai2.com 
</VirtualHost> 

而且還.htaccess文件在你的Magento的根目錄:

SetEnvIf Host www\.domain1\.com MAGE_RUN_CODE=domain1_com 
SetEnvIf Host www\.domain1\.com MAGE_RUN_TYPE=website 
SetEnvIf Host ^domain1\.com MAGE_RUN_CODE=domain1_com 
SetEnvIf Host ^domain1\.com MAGE_RUN_TYPE=website 

SetEnvIf Host www\.domain2\.com MAGE_RUN_CODE=domain2_com 
SetEnvIf Host www\.domain2\.com MAGE_RUN_TYPE=website 
SetEnvIf Host ^domain2\.com MAGE_RUN_CODE=domain2_com 
SetEnvIf Host ^domain2\.com MAGE_RUN_TYPE=website 

SetEnvIf Host www\.domain3\.com MAGE_RUN_CODE=domain3_com 
SetEnvIf Host www\.domain3\.com MAGE_RUN_TYPE=website 
SetEnvIf Host ^domain3\.com MAGE_RUN_CODE=domain3_com 
SetEnvIf Host ^domain3\.com MAGE_RUN_TYPE=website 

請參考以下鏈接瞭解更多信息:

http://www.magentocommerce.com/knowledge-base/entry/tutorial-multi-site-multi-domain-setup

+1

Apache環境變量實際上可以在虛擬主機塊中設置,這會在.htaccess文件中引入較少的切割器 – Roscius