我们有一个旧的电子商务网站从PrestaShop安装转移到新的Magento设置/安装。
当我们采取行动时,我们在新的Magento服务器上的htaccess中添加了大量301重写,以反映所有更改的网址。
这是完美无缺的,但现在我们想要在这个新的Magento安装上移动并添加另一个域并设置多线程环境。
我们如何才能为这个新域制定这些新规则,仅在访问新域时运行,并且不会干扰原始域的先前重写?
这基本上就是我们现在所拥有的:
# 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]
...
但这似乎并没有成功。
答案 0 :(得分:1)
从您的问题和评论中,您似乎想要为不同的域隔离重写规则。尝试在每个RewriteCond
块上方使用RewriteRule
,如下所示:
# OLD DOMAIN REWRITE RULES ON MAGENTO SERVER
RewriteCond %{HTTP_HOST} !^(www\.)?newdomain\.com
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]
您还可以使用此条件来保留旧域重写:
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com
请随时在线.htaccess tester试用这些规则。