redirectmatch redireccionar redireccionamiento redireccion por htaccess enmascarar ejemplo dominio carpeta regex apache .htaccess mod-rewrite url-rewriting

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.