Magento和多个域名

3
我想建立一个多语言商店,根据语言设置多个域名,例如mysite.com(英语),mysite.it(意大利语),mysite.ru(俄语)。
我正在遵循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:未安全和安全的基本网址已设置为正确的域名,每个语言都有一个

编辑:现在我确定这不是Apache的问题。我删除了我的项目目录,Apache没有发送302重定向。因此,Magento正在处理此重定向。


你是否使用.htaccess来设置商店运行或index.php?请展示一下你是如何配置它们的。当使用.htaccess时,请检查是否启用了mod_setenvif。并非所有的主机都支持这种方法。 - Simon H
这听起来像是您的商店代码没有正确设置。您实际上是如何设置它的?是通过.htaccess文件还是index.php文件? - Grimace of Despair
问题已经解决了。这是 Apache 配置中 setEnv 的问题。 - Alive Developer
1个回答

1
Apache虚拟主机设置有误。您需要为每个域名单独创建虚拟主机条目,如下所示:
<VirtualHost *:80>
    ServerAdmin webmaster@domain1.com
    DocumentRoot /var/www/http
    ServerName domain0.com
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@domain2.com
    DocumentRoot /var/www/http
    ServerName domain1.com
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@domain3.com
    DocumentRoot /var/www/http
    ServerName domai2.com
</VirtualHost>

你的Magento根目录中还有一个.htaccess文件:

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

请参考以下链接获取更多信息:

Refer to the following link for more information:

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


1
实际上,Apache环境变量可以在虚拟主机块中设置,这样就可以减少在.htaccess文件中的冗余。 - Roscius

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接