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

fvo*_*erg 2 url .htaccess mod-rewrite magento

我在我的magento商店有不同语言的商店视图.我可以通过它访问它们

www.serverdomain.from.my.hoster.tld/langkey/
Run Code Online (Sandbox Code Playgroud)

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

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

www.myshopsite.langkey
Run Code Online (Sandbox Code Playgroud)

例如:

www.myshopsite.de
www.myshopsite.en
www.myshopsite.com
Run Code Online (Sandbox Code Playgroud)

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

由于我为德国商店视图配置了基本URL,因此我可以通过它访问它

www.myshopsite.de/de/
Run Code Online (Sandbox Code Playgroud)

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

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

RewriteEngine on
RewriteRule ^$ de/$1 [L]
RewriteRule ^(.*) de/$1 [L]
Run Code Online (Sandbox Code Playgroud)

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

Axe*_*xel 6

您可以在.htaccess位于Magento根目录中的文件底部尝试此操作.

SetEnvIf Host www\.myshopsite.\.$ MAGE_RUN_CODE=$1
Run Code Online (Sandbox Code Playgroud)

MAGE_RUN_CODE变量适用于Magento Store View.您基本上将其设置为下面的商店视图代码集System > Manage Stores > Store View

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

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