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)
如果我的错很明显,我很抱歉.
您可以在.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.