301 redirecciones no trabajan con index.php en las URL antiguas
-
28-09-2020 - |
Pregunta
Me moví mi antigua tienda a Magento, estoy usando 1.9.2 CE MAGENTO.La tienda vieja estaba en funcionamiento durante años y no quiso perder las URLS de SEO, así que cuando intento hacer 301 redirecciones, estoy enfrentando un problema.
Si la URL anterior tiene index.php en él, en lugar de redireccionar la nueva URL, Magento redirige a la página de inicio.
Intenté hacer esto con las reescrituras de URL predeterminadas de Magento, con una extensión de terceros y lo intentaron con HTACCESS.Siempre el mismo resultado.
Por ejemplo:
siguiente código en .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)
El problema es que, todas mis antiguas URL tienen index.php?En él, así que necesito hacer que funcione de alguna manera.
¿Alguna idea?
Gracias :)
Solución
Resulta que la directiva redirigente en un archivo .htaccess no coincidirá con la cadena de consulta, solo el URI de solicitud (la parte antes del signo de interrogación).Para que coincida con la cadena de consulta, deberá usar las directivas de reescritura y reescribir.Más información sobre esto aquí: https://simonecarletti.com/blog/2009/01 / Apache-Query-String-Redirects /
Esto debería funcionar en el .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]
Si todas las URL que necesita redirigir están en el mismo formato con una identificación numérica, estas dos líneas deben cuidarlas todas:
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]
Recomendaría redirigir a la URL real del producto, aunque en lugar de una página de resultados de búsqueda.