我的.htaccess重定向重定向到错误的网址

时间:2012-10-31 14:54:44

标签: php .htaccess magento

我最近将wordpress网上商店转换为magento网上商店。现在我希望搜索引擎索引的所有旧网址都从magento重定向到新网址。 由于它只有大约150种产品,我认为我会手动完成。

这是我为所有产品尝试的内容:

Redirect 301 /products-page/accu/unibat-ctz5s-bs/ http://www.domain.nl/accu-s/unibat-ctz5s-bs.html

确实会尝试重定向,但最终会显示在以下网址:http://www.domain.nl/accu-s.htmlunibat-ctz5s-bs/,其中包含404 :(

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

听起来你的htaccess末尾的mod_rewrite规则干扰了你的mod_alias指令(Redirect语句)。在这种情况下,您需要执行重定向,然后跳出URL /文件映射管道,因为mod_rewrite和mod_alias都在管道中执行它们的操作,它们都会破坏URI。只需坚持使用mod_rewrite,将所有语句更改为:

RewriteRule ^/?products-page/accu/unibat-ctz5s-bs/$ http://www.domain.nl/accu-s/unibat-ctz5s-bs.html [L,R=301]

这些需要在之前任何其他规则。但请记住,Redirect语句的工作方式与使用RewriteRule重定向的方式相同。 Rewrite“将”2个URI路径节点链接在一起。如下所示:

Redirect 301 /foo http://www.domain.nl/bar

/foo/bar链接在一起,因此/foo/blah/blah.html的请求会重定向到http://www.domain.nl/bar/blah/blah.html。为了将此功能转换为您需要的重写规则:

RewriteRule ^/?foo(.*)$ http://www.domain.nl/bar$1 [L,R=301]