当用户导航到http://mydomain.nl/nl/my-page/
我需要将用户重定向到http://mydomain.nl/fnl/my-page/
这是因为我工作的网站是一个多商店多语言的Magento网店,在我之前的人错误地配置了它,所以每种语言都有自己的商店范围,而不是每个商店都有自己自己的语言范围。
我的.htaccess中有以下代码:
RewriteCond %{HTTP_HOST} ^mydomain'.nl$ [NC]
RewriteRule ^/nl/terms-and-conditions-of-use/ http://mydomain.nl/fnl/terms-and-conditions-of-use/ [NC,QSA,R]
基本上,我认为这是检查它是否在正确的域(即mydomain.nl)上,然后重定向URL,以便用户看到正确的页面。
重定向不起作用。如果我点击它,它会带我回到主域的主页(然后是另一个域.nl)
有人能看看我做错了什么吗?
-编辑-
有一个Magento安装在adomain.nl上-有多个商店设置了指向它们的不同域。因此,mydomain.nl在技术上是adomain.nl/mydomain,作为Magento本身的第二个商店。我想将mydomain.nl/nl/任何指向mydomain.nl/fnl/请求的页面。在.htaccess中,我需要指定我只希望在mydomain.nl上完成,而不是在domain.nl 上
我希望这能澄清问题——这很复杂。
删除前导斜杠:
RewriteCond %{HTTP_HOST} !^(www'.)?adomain'.nl$ [NC]
RewriteRule ^nl/(terms-and-conditions-of-use)/ /fnl/$1/ [NC,L,R]
或者使其更加通用:
RewriteCond %{HTTP_HOST} !^(www'.)?adomain'.nl$ [NC]
RewriteRule ^nl/(.+) /fnl/$1 [NC,L,R]
尽管anubhava的回答很相似,但这对我来说很有效:
RewriteCond %{HTTP_HOST} ^domain'.nl$ [NC]
RewriteRule ^nl/terms-and-conditions-of-use/ /fnl/terms-and-conditions-of-use/ [NC,L,R]
只需重定向任何访问http://domain.nl/nl/terms-and-conditions-of-use/到http://domain.nl/fnl/terms-and-conditions-of-use只有当用户转到domain.nl时,它才会这样做——这对只使用一个.htaccess文件的Magento多商店网站很有用。