我将我的旧商店搬到了Magento,我使用了1.9.2 CE Magento。旧商店已经上升了,多年来运行,我不想丢失SEO网址,所以当我尝试做301个重定向时,我面临着问题。

如果旧网址有index.php,那么而不是重定向到新的URL,Magento重定向到主页。

我尝试使用magento默认网址重写,其中包含第三方扩展,并使用htaccess尝试。总是相同的结果。

例如:

在.htaccess中的代码

Redirect 301 /index.php?main_page=product_info&products_id=161 http://domain.com/catalogsearch/result/?q=sku-161 --- This redirects to homepage (Doesnt work properly)
Redirect 301 /main_page=product_info&products_id=331 http://domain.com/catalogsearch/result/?q=sku-331 --- This redirects to new URL (Works Properly) 
.

问题是,我所有的旧网址都有index.php?在其中,所以我需要以某种方式制作它。

任何想法?

谢谢:)

有帮助吗?

解决方案

它在.htaccess文件中拒绝重定向指令不匹配查询字符串,只有请求URI(问号前的零件)。要匹配查询字符串,您需要使用重写和重写指令。此处的更多信息: https://simonecarletti.com/blog/2009/01 / apache query-string-redirects /

这应该在.htaccess

中工作
RewriteEngine On

RewriteCond %{QUERY_STRING} ^main_page=product_info&products_id=331$
RewriteRule ^index\.php$ http://gearx.local/catalogsearch/result?q=sku-331 [R=301,L]
.

如果您需要重定向的所有URL都以与数字ID相同的格式,那么这两条线应该照顾它们:

RewriteCond %{QUERY_STRING} ^main_page=product_info&products_id=([0-9]+)$
RewriteRule ^index\.php$ http://gearx.local/catalogsearch/result?q=sku-%1 [R=301,L]
.

我建议重定向到产品的实际URL,而不是搜索结果页面。

许可以下: CC-BY-SA归因
scroll top