regex - redireccionar - redirección htaccess 301-Eliminar cadena de consulta(QSA)
redireccionar dominio htaccess (2)
Además de la respuesta de anubhava, puede usar alternativamente la bandera QSD de Apache 2.4.0
RewriteRule ^menu/.php$ /new-page-name [L,R=301,QSD]
http://httpd.apache.org/docs/current/en/rewrite/flags.html#flag_qsd
He estado luchando con algunos redireccionamientos de htaccess. Acabo de pasar un tiempo leyendo y buscando en la pila y no pude obtener una nota que funcione con mi escenario.
Estoy en el proceso de hacer que la redirección 301 para un sitio web de cliente viejo a uno nuevo. Las páginas anteriores tienen parámetros de consulta que quiero eliminar de la url.
/menu.php?idCategorie=29&idDetail=172
a
/new-website-page/
Tengo varias consultas para hacer, he aquí un par de ejemplos:
/menu.php?idCategorie=29&idDetail=172
/menu.php?idCategorie=29&idDetail=182
/menu.php?idCategorie=29&idDetail=184
/menu.php?idCategorie=29&idDetail=256
Que todos los enlaces a diferentes páginas nuevas.
Esto es lo que intenté:
RewriteCond %{QUERY_STRING} idDetail=172
RewriteRule ^menu.php(.*) /new-page/? [R=301,L]
Me redireccionan correctamente, pero la URL mantiene la cadena de consulta:
http://website.com/new-page/?idCategorie=29&idDetail=172
También intenté esto:
RewriteRule ^menu.php?idCategorie=29&idDetail=172$ http://website.com/new-page/? [L,R=301]
Y esto:
RewriteCond %{QUERY_STRING} idDetail=172(.*)$
RewriteRule ^menu.php /new-page-name?$1 [L,R=301]
Y no funcionó (todavía tiene la cadena de consulta al final)
¡Gracias!
Puedes usar esta regla:
RewriteRule ^menu/.php$ /new-page-name? [L,R=301]
Toma nota de los últimos ?
al final, que se utiliza para eliminar cualquier cadena de consulta existente en el URI original.