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

htaccess mod_rewrite - buscar y reemplazar

Estas en el tema de htaccess mod_rewrite - buscar y reemplazar en el foro de Apache en Foros del Web. Hola a todos, Tengo un problema algo nuevo e inesperado al menos para mi... veran tengo mas de 10,000 imagenes en el servidor, de las ...
  #1 (permalink)  
Antiguo 29/08/2014, 11:15
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
htaccess mod_rewrite - buscar y reemplazar

Hola a todos,

Tengo un problema algo nuevo e inesperado al menos para mi... veran tengo mas de 10,000 imagenes en el servidor, de las cuales algunas tienen acentos o Ñ.

Al mudar de hosting, me encuentro conque no funcionan las url con estos caracteres... renombrar archivo por archivo y actualizar la base de datos manualmente me es insostenible, sumado que yo no he creado el sitio y no conozco su estructura y es bastante amplia como para buscar donde pudieron haberse usado.

Alguien sabe si con mod_rewrite se pueden buscar caracteres en una url y reemplazarlos?

Vamos yo se como eliminar palabras o cambiarlas, al igual que crear url amigables pero en todos los casos que me vienen a la mente es necesario conocer la posición del elemento a remplazar y en este caso no lo conozco.

O ¿tal vez alguna forma de habilitar desde el htaccess para que acepte y reconozca los acentos en la url?


Un ejemplo rápido de lo que busco:

Es si en html aparece una imagen
Código HTML:
Ver original
  1. <img src="http://dominio.com/folder/niña.jpg" />

automáticamente se cargue
http://dominio.com/folder/nina.jpg

Última edición por ArturoGallegos; 29/08/2014 a las 11:27
  #2 (permalink)  
Antiguo 29/08/2014, 11:50
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: htaccess mod_rewrite - buscar y reemplazar

Por lo general esto suele ser problema del navegador y no del servidor.

Puede que no se estén codificando bien los caracteres... Prueba a utilizar otro navegador.
  #3 (permalink)  
Antiguo 29/08/2014, 11:53
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: htaccess mod_rewrite - buscar y reemplazar

También pensé que era eso e incluso es lo mas mencionado en internet, pero yo me he declinado por un problema en el servidor ya que si coloco manualmente la url absoluta a la imagen en el navegador no funciona, sin embargo cambio el acento o Ñ por cualquier letra la carga sin problemas.
  #4 (permalink)  
Antiguo 29/08/2014, 12:39
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: htaccess mod_rewrite - buscar y reemplazar

Supongo que me cerré, después de repasar los parámetros viables en mod_rewrite llegue a esto, por si a alguien le sirve.

RewriteRule ^(.*)(ñ)(.*)\.jpg$ $1n$3\.jpg [L]
RewriteRule ^(.*)(á)(.*)\.jpg$ $1a$3\.jpg [L]
RewriteRule ^(.*)(é)(.*)\.jpg$ $1e$3\.jpg [L]

Aunque supondrá una linea de código por cada carácter que necesite reemplazar, al menos solventa mi problema... haciendo que funcionen las url con acentos y Ñ

Ya solo tocara usar AntRenamer para encontrar y renombrar los archivos con dichos caracteres.

Si alguien sabe como unir varias reglas (como estas que son similares) en una sola, seria de ayuda...
  #5 (permalink)  
Antiguo 29/08/2014, 14:09
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: htaccess mod_rewrite - buscar y reemplazar

Cita:
Iniciado por ArturoGallegos Ver Mensaje
RewriteRule ^(.*)(ñ)(.*)\.jpg$ $1n$3\.jpg [L]
RewriteRule ^(.*)(á)(.*)\.jpg$ $1a$3\.jpg [L]
RewriteRule ^(.*)(é)(.*)\.jpg$ $1e$3\.jpg [L]

Si alguien sabe como unir varias reglas (como estas que son similares) en una sola, seria de ayuda...
Código Apache:
Ver original
  1. RewriteRule ^(.*)([ñáé])(.*)\.jpg$ $1$2$3\.jpg [L]

Metes en el patrón los caracteres especiales que quieres reemplazar.
  #6 (permalink)  
Antiguo 29/08/2014, 15:37
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: htaccess mod_rewrite - buscar y reemplazar

Gracias por el intento PHPeros,

Con el código que muestras solo encuentra la é saltándose la ñ y la á .... sumado que al poner $1$2$3 solo vuelve a imprimir lo que encontró y pierde sentido el usar la regla para reescribir.

Para concatenar la búsqueda probé con

RewriteRule ^(.*)(ñ|á|é)(.*)$ $1$2$3 [L]

Y si encuentra cada letra pero mi problema viene al tener que reemplazarlas, no se como decirle si encuentras Ñ reemplaza con N, si es Á reemplaza con A... etc etc.
  #7 (permalink)  
Antiguo 30/08/2014, 10:01
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: htaccess mod_rewrite - buscar y reemplazar

No sé en qué estaba pensando

Lo último que se me ocurre sería llevar los datos a un archivo PHP, desde ahí reemplazar los caracteres y después redirigir...

Etiquetas: htaccess, reemplazar, url
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 06:54.