【发布时间】:2015-04-10 16:06:17
【问题描述】:
我们有一个旧的电子商务网站从 PrestaShop 安装转移到新的 Magento 设置/安装。
当我们采取这一举措时,我们在新的 Magento 服务器上的 htaccess 中添加了大量 301 重写,以反映所有更改的 url。
这是完美无缺的,但现在我们想在这个新的 Magento 安装上移动并添加另一个域并设置一个多存储环境。
我们如何才能使这些新的 301 规则,对于这个新域,只在访问新域时运行,并且不干扰之前的重写,对于原始域?
这基本上就是我们现在所拥有的:
# OLD DOMAIN REWRITE RULES ON MAGENTO SERVER
RewriteRule ^oldurl1.html(.*)$ /new-nice-url1/? [R=301,NC,L]
RewriteRule ^oldurl2.html(.*)$ /new-nice-url2/? [R=301,NC,L]
RewriteRule ^oldurl3.html(.*)$ /new-nice-url3/? [R=301,NC,L]
...
这是我们一直在尝试添加的内容:
# NEWLY ADDED DOMAIN TO MAGENTO MULTISTORE ENVIRONMENT
RewriteCond %{HTTP_HOST} ^www\.newdomain\.com
RewriteRule ^newdomain-old-url1.html(.*)$ /new-domain-url1/? [R=301,NC,L]
RewriteRule ^newdomain-old-url2.html(.*)$ /new-domain-url2/? [R=301,NC,L]
RewriteRule ^newdomain-old-url3.html(.*)$ /new-domain-url3/? [R=301,NC,L]
...
但这似乎不起作用。
【问题讨论】:
-
您能否提供一个示例输入和一个预期的重写示例?
-
这对我来说有点难以解释,但如果在一个或另一个中找到完全相同的规则,则首先处理该规则。我们担心这可能会导致将来出现奇怪的怪癖。其中一些规则应该仅在访问新域时运行。
-
你能不能在旧的域规则中也添加一个 HTTP_HOST 上的 RewriteCond 吗?
标签: php apache .htaccess magento mod-rewrite