htaccess 301 redirect-Eliminar cadena de consulta (QSA)
He estado luchando con algunas redirecciones de htaccess. Acabo de pasar algún tiempo leyendo y buscando en stack y no pude conseguir un anwser que funcione con mi escenario.
Estoy en el proceso de hacer el redireccionamiento 301 para un sitio web de cliente antiguo a uno nuevo. Las páginas antiguas tienen una consulta de parámetros que quiero eliminar de la url.
/menu.php?idCategorie=29&idDetail=172
A
/new-website-page/
Tengo varias consultas que hacer, aquí hay 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 enlazan a diferentes páginas nuevas.
Esto es lo que intenté:
RewriteCond %{QUERY_STRING} idDetail=172
RewriteRule ^menu.php(.*) /new-page/? [R=301,L]
Me redirige 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!
2 answers
Puedes usar esta regla:
RewriteRule ^menu\.php$ /new-page-name? [L,R=301]
Tome nota del final ?
que se usa para eliminar cualquier cadena de consulta existente en el URI original.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-14 16:25:39
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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-19 14:26:29