Php My.htaccess重定向正在重定向到错误的URL
我最近把wordpress网站转换成了magento网站。现在我希望所有被搜索引擎索引的旧URL重定向到来自magento的新URL。 因为它只有大约150种产品,我想我应该手动操作 这是我为所有产品所做的尝试:Php My.htaccess重定向正在重定向到错误的URL,php,.htaccess,magento,Php,.htaccess,Magento,我最近把wordpress网站转换成了magento网站。现在我希望所有被搜索引擎索引的旧URL重定向到来自magento的新URL。 因为它只有大约150种产品,我想我应该手动操作 这是我为所有产品所做的尝试: Redirect 301 /products-page/accu/unibat-ctz5s-bs/ http://www.domain.nl/accu-s/unibat-ctz5s-bs.html 它确实尝试重定向,但最终指向以下URL:,这将给出一个404:( 有人能帮我吗?听起来
Redirect 301 /products-page/accu/unibat-ctz5s-bs/ http://www.domain.nl/accu-s/unibat-ctz5s-bs.html
它确实尝试重定向,但最终指向以下URL:,这将给出一个404:(
有人能帮我吗?听起来htaccess末尾的mod_重写规则与mod_别名指令(重定向语句)有冲突。在这种情况下,您需要执行重定向,然后跳出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]
这些规则需要优先于任何其他规则。但请记住,重定向
语句的工作方式与使用重写规则
重定向的方式不同。重写
将两个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]
这是你的.htaccess文件中唯一的一行代码吗?这是域.nl上唯一的.htaccess文件吗?嗨,不,在.htaccess文件中有很多行。它是一个标准的magento.htaccess文件,有大约150行这样的重定向。嗨,谢谢你的回答!当我使用重写规则时,它可以工作。只在一个产品上。其余的是直到重定向到错误的url:(@DavidEricsson)您必须将所有
Redirect
语句更改为等效的RewriteRule
。关键是mod_alias和mod_rewrite没有很好地相互配合,所以在重叠的路径中根本不能使用mod_alias。谢谢Jon Lin!你是我的英雄!