Foros del Web » Administración de Sistemas » Apache »

redirección de carpeta a carpeta. Problema con idiomas

Estas en el tema de redirección de carpeta a carpeta. Problema con idiomas en el foro de Apache en Foros del Web. Hola muchahos y muchachas. Tengo un problema al que le doy vueltas desde hace días y no se como solucionarlo. Supongamos que tengo una web ...
  #1 (permalink)  
Antiguo 28/03/2012, 09:40
 
Fecha de Ingreso: julio-2007
Ubicación: Málaga
Mensajes: 600
Antigüedad: 17 años, 5 meses
Puntos: 56
redirección de carpeta a carpeta. Problema con idiomas

Hola muchahos y muchachas. Tengo un problema al que le doy vueltas desde hace días y no se como solucionarlo.

Supongamos que tengo una web de plantas con varios idiomas, organizada por categorías.

Para hacer las URL simpáticas puse este código en el htaccess:

Código:
Rewriterule ^(..)/plantas/([a-zA-Z0-9-]+)/?$ plantsDetail.php?item=$2&lang=$1
Esto me muestra:

www.misitio .com/ru/plantas/amapola/

Ahora lo que quiero es dejar la URL así:

www.misitio .com/ru/amapola/

Así que cambié el código por esto y listo:

Código:
Rewriterule ^(..)/([a-zA-Z0-9-]+)/?$ plantsDetail.php?item=$2&lang=$1
PERO ahora el problema es dirigir a las visitas que entren por la antigua URL a la nueva. El total de URLS son unas 1500, así que la opción de redirigirlas a mano una a una no la tengo presente.

He probado varios códigos que he encontrado, pero me dan errores con la carpeta del idioma y la estructura.

¿Alguien sabe cómo podría solucionar esto?? Muchas gracias de verdad por adelantado!
  #2 (permalink)  
Antiguo 01/04/2012, 04:36
Avatar de charlyalegret  
Fecha de Ingreso: septiembre-2011
Ubicación: Barcelona
Mensajes: 705
Antigüedad: 13 años, 2 meses
Puntos: 140
Respuesta: redirección de carpeta a carpeta. Problema con idiomas

Hola!

Nos podrías indicar qué has probado? Por no repetir lo mismo!

Yo haría algo así, pero me da que ya lo debes haber probado... qué errores te da?

Código Apache:
Ver original
  1. Rewriterule ^(.+)/plantas/([a-zA-Z0-9-]+)/?$ /$1/$2/ [L,R=301]

o

Código Apache:
Ver original
  1. RedirectMatch 301 ^(.+)/plantas/([a-zA-Z0-9-]+)/?$ http://www.misitio.com/$1/$2/
  #3 (permalink)  
Antiguo 18/04/2012, 05:58
 
Fecha de Ingreso: julio-2007
Ubicación: Málaga
Mensajes: 600
Antigüedad: 17 años, 5 meses
Puntos: 56
Respuesta: redirección de carpeta a carpeta. Problema con idiomas

Cita:
Iniciado por charlyalegret Ver Mensaje
Código Apache:
Ver original
  1. Rewriterule ^(.+)/plantas/([a-zA-Z0-9-]+)/?$ /$1/$2/ [L,R=301]
Muchas gracias por la respuesta, no he podido contestar antes. Éste código me funciona perfecto, pero si se tratara sólo de 1 carpeta. Al hacer lo mismo con varias carpetas entra en un bucle indefinido.

Este sería mi htacces ahora:

Código:
Rewriterule ^(..)/plantas/([a-zA-Z0-9-]+)/?$ plantasDetail.php?item=$2&lang=$1
Rewriterule ^(..)/arboles/([a-zA-Z0-9-]+)/?$ arbolesDetail.php?item=$2&lang=$1
Rewriterule ^(..)/flores/([a-zA-Z0-9-]+)/?$ floresDetail.php?item=$2&lang=$1
Rewriterule ^(..)/piedras/([a-zA-Z0-9-]+)/?$ piedrasDetail.php?item=$2&lang=$1
Rewriterule ^(..)/regaderas/([a-zA-Z0-9-]+)/?$ regaderasDetail.php?item=$2&lang=$1
Rewriterule ^(..)/abono/([a-zA-Z0-9-]+)/?$ abonoDetail.php?item=$2&lang=$1
Rewriterule ^(..)/enanos-de-jardin/([a-zA-Z0-9-]+)/?$ enanosDetail.php?item=$2&lang=$1
Con el código que planteas se queda así:

Código:
Rewriterule ^(..)/([a-zA-Z0-9-]+)/?$ plantasDetail.php?item=$2&lang=$1
Rewriterule ^(..)/([a-zA-Z0-9-]+)/?$ arbolesDetail.php?item=$2&lang=$1
Rewriterule ^(..)/([a-zA-Z0-9-]+)/?$ floresDetail.php?item=$2&lang=$1
Rewriterule ^(..)/([a-zA-Z0-9-]+)/?$ piedrasDetail.php?item=$2&lang=$1
Rewriterule ^(..)/([a-zA-Z0-9-]+)/?$ regaderasDetail.php?item=$2&lang=$1
Rewriterule ^(..)/([a-zA-Z0-9-]+)/?$ abonoDetail.php?item=$2&lang=$1
Rewriterule ^(..)/([a-zA-Z0-9-]+)/?$ enanosDetail.php?item=$2&lang=$1

Rewriterule ^(..)/plantas/([a-zA-Z0-9-]+)/?$ /$1/$2/ [L,R=301]
Rewriterule ^(..)/arboles/([a-zA-Z0-9-]+)/?$ /$1/$2/ [L,R=301]
Rewriterule ^(..)/flores/([a-zA-Z0-9-]+)/?$ /$1/$2/ [L,R=301]
Rewriterule ^(..)/piedras/([a-zA-Z0-9-]+)/?$ /$1/$2/ [L,R=301]
Rewriterule ^(..)/regaderas/([a-zA-Z0-9-]+)/?$ /$1/$2/ [L,R=301]
Rewriterule ^(..)/abono/([a-zA-Z0-9-]+)/?$ /$1/$2/ [L,R=301]
Rewriterule ^(..)/enanos-de-jardin/([a-zA-Z0-9-]+)/?$ /$1/$2/ [L,R=301]
Esto hace que la página este continuamente redireccionandose no se porqué.

Etiquetas: htaccess, idiomas, php, red, rewrite, url, carpetas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:42.