Foros del Web » Programando para Internet » PHP »

mod_rewrite reemplazar los espacios %20

Estas en el tema de mod_rewrite reemplazar los espacios %20 en el foro de PHP en Foros del Web. Estoy utilizando el módulo de Apache mod_rewrite para "limpiar" las direcciones url y de paso que los buscadores indexen mis páginas sin problemas. Me funciona ...
  #1 (permalink)  
Antiguo 18/10/2005, 15:35
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 37
Antigüedad: 19 años, 2 meses
Puntos: 1
Exclamación mod_rewrite reemplazar los espacios %20

Estoy utilizando el módulo de Apache mod_rewrite para "limpiar" las direcciones url y de paso que los buscadores indexen mis páginas sin problemas.

Me funciona correctamente, pero lo que me gustaría es que algunas de las variables contienen espacios y al visualizar en la direccions url me sale el famoso %20. ¿Cómo podria reemplazar los %20 por _?

El código del .htacces es este:
Código PHP:
Options +FollowSymLinks
RewriteEngine on

RewriteRule 
^(.*)%20(.*)$  $1-$2

Rewriterule 
^(.*)/modelo_coche_(.*).htmlcoche.php?marca=$1&modelo=$
el enlace de momento me sale asi en algunos casos:
http://www.mipaginacom/BMW/modelo_coche_Audi%20A3.html
me gustaria que apareciera de esta manera:
http://www.mipaginacom/BMW/modelo_coche_Audi_A3.html

PD: Todo esto es un ejemplo, realmente no estoy haciendo una pagina de coches
  #2 (permalink)  
Antiguo 18/10/2005, 16:32
Avatar de tyo100  
Fecha de Ingreso: febrero-2005
Ubicación: Monterrey, NL
Mensajes: 475
Antigüedad: 19 años, 2 meses
Puntos: 1
Pues mod_rewrite es un tema muy complejo te recomiendo que busques mucha informacion sobre expresiones regulares o de plano modifiques tu script para que este sea el que cambie %20 por _ ó un | ó tal vez - y no mod_rewrite
__________________
Desde la tierra de los nopales, las tortillas de maiz, y en cuya ciudad se encuenta el cerro de la silla.
NalgAss Web
SpiderMex - La Historia del Hombre Araña en MEXICO
  #3 (permalink)  
Antiguo 20/10/2005, 01:55
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 37
Antigüedad: 19 años, 2 meses
Puntos: 1
Efectivamente tyo100, realmente la solución no estaba en modificar el archivo .htaccess, es decir en el código del módulo mod_rewrite.

Hay que hacer un script en php para reemplazar los espacios de la variable antes de pasarla por el mod_rewrite.

Concretamente se trata de este script:

$modelo = str_replace("+","_",urlencode($row['modelo']));

Con este simple script lo que hace es coger la variable de la base de datos "modelo", le ponemos el urlencode para que nos unifique los espacios con +, y luego con str_replace, reemplazamos el + con el _.

De este modo obtenemos la página deseada:

http://www.mipaginacom/BMW/modelo_coche_Audi_A3.html
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 13:54.