带有htaccess的Magento多线程重写了不同的域

时间:2015-04-10 16:06:18

标签: php apache .htaccess magento mod-rewrite

我们有一个旧的电子商务网站从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]
...

但这似乎并没有成功。

1 个答案:

答案 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试用这些规则。