如何在magento中为不同的商店视图使用不同的URL?

时间:2013-07-19 12:55:27

标签: .htaccess magento url mod-rewrite

我的magento商店有不同语言的商店视图。我可以通过

访问它们
www.serverdomain.from.my.hoster.tld/langkey/

langkeys是不同商店视图的代码,我启用了“将商店代码添加到网址”。

现在,我想使用以下注册域名而不编辑index.php

www.myshopsite.langkey

例如:

www.myshopsite.de
www.myshopsite.en
www.myshopsite.com

为此,我尝试通过htaccess设置MAGE_RUN_CODE和MAGE_RUN_TYPE,直到我意识到它们用于获取不同的商店而不是不同的商店视图。

由于我为德国商店视图配置了基本网址,因此我可以通过

访问它
www.myshopsite.de/de/

现在我正在尝试从www.myshopsite.de/内部重定向到www.myshopsite.de/de/以删除跟踪商店视图代码。

这是我的尝试,最终重定向到www.myshopsite.de/en/和内部服务器错误

RewriteEngine on
RewriteRule ^$ de/$1 [L]
RewriteRule ^(.*) de/$1 [L]

如果我的错很明显,我很抱歉。

1 个答案:

答案 0 :(得分:6)

您可以在位于Magento根目录的.htaccess文件底部试试。

SetEnvIf Host www\.myshopsite.\.$ MAGE_RUN_CODE=$1

MAGE_RUN_CODE变量适用于Magento Store View。您基本上将其设置为System > Manage Stores > Store View

下的商店视图代码集

我已经完成了很多这些配置,所以我知道有时你的服务器环境设置(apache等)可能不同,并且在.htaccess中使用SetEnvIf可能不起作用。如果是这种情况,您可能最好在index.php中插入一些代码来实现您正在寻找的结果。

是的,它正在修改核心文件,但是考虑到这种情况可能会让PHP处理存储变量映射而不是apache更稳定。