¡He estado luchando con esto durante varias semanas y no puedo entenderlo! Tengo varias páginas antiguas (miles) que tienen una cadena como la siguiente (movimos los carritos de compras)
www.example.com/cgi-bin/commerce.cgi?preadd=action&key=86895 Y
www.example.com/cgi-bin/commerce.cgi?preadd=action&search=action&searchstart=20&keywords=blahblah
Me gustaría redirigir estas páginas a una página de búsqueda en mi nuevo sitio. He usado lo siguiente pero no funciona
RewriteCond% {QUERY_STRING} ^ $ RewriteRule ^ cgi-bin / commerce.cgi? (. *) $ http://www.example.com/newpage? [R = 301, L]
¡Ayúdame para que pueda volver a crecer mi cabello!
Respuestas
1 para la respuesta № 1Hay dos problemas:
- su condicion
RewriteCond %{QUERY_STRING} ^$
significa que la cadena de consulta está vacía. Realmente está intentando redirigir si la cadena de consulta está vacía o no. - tu regla busca un
?
en la url, pero la cadena de consulta no es parte del texto que puede coincidir en una regla.
Use esta regla más corta, sin RewriteCond (probado en Apache 2.4):
RewriteRule ^/?cgi-bin/commerce.cgi http://www.example.com/newpage? [R=301,L]
Hazme saber si esto funciona para ti. :)
0 para la respuesta № 2
Intenta poner lo siguiente en el archivo htaccess
# This allows you to redirect your entire website to any other domain
Redirect 301 / http://newwebsiteurl.com/