所以我要在WordPress安装的后面安装一个Magento;所以在:
- 根。level/is WordPress
- 根。关卡/商店/是Magento
网站的所有元素,除了目录是通过WordPress处理。Magento只有处理目录。
该网站将完全针对英国、欧洲其他地区和美国市场进行本地化。在WordPress上,我使用qTranslate插件有效地实现了这一点,因此以下所有内容都可以正常工作:
- root.level/英国/
- root.level/欧盟/
- root.level/美国/
在Magento中,我创建了3个店面,并使用我已经设法使它们显示为:
- root.level/商店/英国/
- root.level/商店/欧盟/
- root.level/商店/美国/
#shop moves
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^([a-z][a-z])/shop/(.*)[/]{0,1}$ /shop/index.php?___store=$1 [L]
RewriteRule ^([a-z][a-z])/shop[/]{0,1}$ /shop/index.php?___store=$1 [L]
</IfModule>
在根上有预期的效果。level/uk/shop/将加载英国magento店面主页,而root.level/uk/shop/xyz.html具有期望的行为。问题是商店页面上的链接仍然指向root.level/shop/xyz.html。如何使链接反映重写的url ?
我试过进入Magento Admin->System->Config,将范围设置到相关的商店前面,然后在Web更改"链接URL"(在安全和不安全下),而这纠正了链接,它使每个页面404(包括主页)在该店面。是否有地方我需要编辑Magento的URL阅读行为?
编辑:这很奇怪。我已经修好了/eu/shop/和/us/shop/,但是/uk/shop/还在退回404。我认为这是因为英国注定要违约,但改变这一点似乎并没有影响到事情。什么好主意吗?
您可以使用此.htaccess
使其工作:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Redirect old /shop/uk/ to new /uk/shop
RewriteCond %{THE_REQUEST} ^/shop/([a-z]{2})(.*)$ [NC]
RewriteRule ^ %1/shop/%2 [R=302,L]
# Load the right file for new /uk/shop
RewriteRule ^([a-z]{2})/shop/(.*)/?$ /shop/index.php?___store=$1 [L]
RewriteRule ^([a-z]{2})/shop/?$ /shop/index.php?___store=$1 [L]
</IfModule>