Pergunta

Mudei minha antiga loja para magento, estou usando 1.9.2 CE Magento.A loja antiga estava funcionando há anos e eu não queria perder URLs de SEO, então, quando tento fazer redirecionamentos 301, estou enfrentando um problema.

Se o URL antigo contiver index.php, em vez de redirecionar para o novo URL, o magento redirecionará para a página inicial.

Tentei fazer isso com reescritas de URL padrão do Magento, com uma extensão de terceiros e tentei com htaccess também.Sempre o mesmo resultado.

por exemplo:

Seguindo o código em .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) 

O problema é que todos os meus URLs antigos possuem index.php?nele, então preciso fazer com que funcione de alguma forma.

Alguma ideia?

Obrigado :)

Foi útil?

Solução

Acontece que a diretiva Redirect em um arquivo .htaccess não corresponde à string de consulta, apenas ao uri da solicitação (a parte antes do ponto de interrogação).Para corresponder à string de consulta, você precisará usar as diretivas RewriteCond e RewriteRule.Mais informações sobre isso aqui: https://simonecarletti.com/blog/2009/01/apache-query-string-redirects/

Isso deve funcionar no .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]

Se todos os URLs que você precisa redirecionar estiverem no mesmo formato com um ID numérico, essas duas linhas deverão cuidar de todos eles:

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]

Eu recomendo redirecionar para o URL real do produto, em vez de para uma página de resultados de pesquisa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top