Foros Programación Servidor
Ayuda con esta expresión regular
2 2 Respuestas Jueves 24 de noviembre, 2011
Buenas, en una tienda online se han cambiado los enlaces de todos los productos al haber cambiado el sistema utilizado, por lo que me interesa hacer una redirección htaccess de los enlaces viejos a la búsqueda del nombre de esos productos.
ejemplo.
Enlace en google : www.tienda.com/producto-muy-bonito-p-4567.html
Lo que quiero es que al acceder a ese link, se redirija a search.php?search_query=producto+muy+bonito
Por ahora tengo lo siguiente:
RewriteRule ^([a-zA-Z0-9-]*)-p-([0-9]+)\.html /search.php?search_query=$1
Esto hace que la url
www.tienda.com/producto-muy-bonito-p-4567.html
se transforme en:
www.tienda.com/search?search_query=producto-muy-bonito
Como modifico mi expresión regular para que cambie además los - por + ? Hay que tener en cuenta que el numero de - es variable, la url puede ser tanto producto-muy-bonito como producto-bonito o producto-muy-bonito-y-largo
Gracias
ejemplo.
Enlace en google : www.tienda.com/producto-muy-bonito-p-4567.html
Lo que quiero es que al acceder a ese link, se redirija a search.php?search_query=producto+muy+bonito
Por ahora tengo lo siguiente:
RewriteRule ^([a-zA-Z0-9-]*)-p-([0-9]+)\.html /search.php?search_query=$1
Esto hace que la url
www.tienda.com/producto-muy-bonito-p-4567.html
se transforme en:
www.tienda.com/search?search_query=producto-muy-bonito
Como modifico mi expresión regular para que cambie además los - por + ? Hay que tener en cuenta que el numero de - es variable, la url puede ser tanto producto-muy-bonito como producto-bonito o producto-muy-bonito-y-largo
Gracias
-
chusete
Registrado desde 06/11/11 / Número de posts: 14
RewriteBase /
RewriteRule (.*)\-(.*) $1+$2 [N]
RewriteRule ([a-zA-Z0-9+]*)\+p\+([0-9]+)\.html index.php?search_query=$1 [R]
* La primera regla, define el raíz.
* La segunda, sustituye - por +. El flag [N] hace que se repita.
* La tercera, realiza la redirección a la nueva URL (he añadido el flag [R] para que lleve a cabo la redirección en el navegador).
Quizás desees poner un RewriteCond antes de la segunda regla, para que sólo aplique la sustitución a determinadas URLs que cumplan un patrón.
Un saludo! :)/*****************************************************************/
Programador freelance de aplicaciones web. Experto en PHP, jQuery, HTML5, CSS3, Wordpress, etc. Echa un vistazo a mi perfil y a mi portfolio para conocer más. -
Rodrerick
Registrado desde 12/09/11 / Número de posts: 4
Gracias Chusete, no he podido probarlo aún, hice el paso de los - por + mediante php, pero probaré tu solución ,que a mi gusto es más limpia
Áreas Domestika
- Diseño (gráfico, web, industrial, producto)
- Programación (cliente, servidor, accesibilidad)
- Ilustración (autores, inspiración, técnicas)
- Fotografía (técnica, equipo, autores)
- Motion Graphics (showreels, software, estudios)
- Publicidad (campañas, anuncios, ideas)
- Informática (software, hardware, trucos)
- 3D (técnicas, iluminación, modelado)
- Experiencia de Usuario (usabilidad, AI, HCI)
- Cine, vídeo y televisión (críticas, producción)
- Música y Audio (sonidos, loops, discos)
- Espacios (arquitectura, interiorismo)