Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema con urls amigables con htaccess y PHP

Estas en el tema de Problema con urls amigables con htaccess y PHP en el foro de PHP en Foros del Web. Buenas. Estoy rediseñando una web e introduciendo URLs amigables con htaccess. Con htaccess no tengo problema, pero sí con las consecuencias y la programación PHP. ...
  #1 (permalink)  
Antiguo 17/07/2014, 05:43
 
Fecha de Ingreso: junio-2012
Mensajes: 147
Antigüedad: 11 años, 9 meses
Puntos: 1
Problema con urls amigables con htaccess y PHP

Buenas. Estoy rediseñando una web e introduciendo URLs amigables con htaccess. Con htaccess no tengo problema, pero sí con las consecuencias y la programación PHP. Pongo un ejemplo, que será más fácil que explicarlo.

En htaccess tengo esta regla
Código htaccess:
Ver original
  1. RewriteRule ^grupos/(.+)$ grupos.php?nombre=$1

De forma que la página que antes era grupos.php?nombre=migrupo ahora será grupos/migrupo. Hasta aquí bien.

El problema es que ahora el comportamiento es como si la página grupos.php estuviera en una carpeta llamada grupos, por lo que todo lo que había escrito en la página que tuviera relación con los directorios dentro del servidor no funciona. Y esto es un problema con la cabecera. La web tiene la misma cabecera para todas las páginas y, por ejemplo, las imágenes no se cargan.

En la cabecera hay una imagen, que es la foto del usuario:

Código HTML:
Ver original
  1. <img src="images/fotos_usuario/mi_foto.jpg"/>

Ahora esa foto no se carga, para que se cargase tendría que bajar dos niveles en el arbol de carpetas, como si la página grupos/migrupo estuviera en la ruta www/grupos/migrupo

Código HTML:
Ver original
  1. <img src="../../images/fotos_usuario/mi_foto.jpg"/>

Pero no puedo hacer esa modificación porque como he dicho la cabecera es la misma para toda la web, y si hiciera esa modificación las imágenes no se cargarían en index.php.

Si alguien sabe como solucionar este problema por favor que me lo indique, porque me estoy volviendo loco! He buscado en Stack Overflow pero no he encontrado nada.

Por cierto, pongo esto en la sección de PHP porque creo que la única forma de arreglar esto debe ser desde el servidor, con PHP.

Mil gracias por anticipado.
  #2 (permalink)  
Antiguo 17/07/2014, 07:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con urls amigables con htaccess y PHP

El problema nada tiene que ver con PHP, es más bien puro y duro HTML.

Es decir, la ruta de la imagen "images/fotos_usuario/mi_foto.jpg" es relativa, ¿relativa a dónde?

Bueno, mod_rewrite simula rutas pero el navegador entiende como si fueran rutas reales, carpetas reales.

Entonces la ruta de tus imágenes son relativas a la ruta actual que se muestra en el navegador.

Lo correcto es siempre usar una ruta absoluta, para que, sin importar dónde estés siempre resuelva hacia el mismo destino.

Cita:
# ruta relativa
images/fotos_usuario/mi_foto.jpg

# ruta absoluta
/images/fotos_usuario/mi_foto.jpg
http://sitioweb.com/images/fotos_usuario/mi_foto.jpg
¿Se entiende?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 17/07/2014, 11:54
 
Fecha de Ingreso: junio-2012
Mensajes: 147
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Problema con urls amigables con htaccess y PHP

Ok, gracias por contestar. Entiendo que poniendo la ruta absoluta se soluciona, pero eso me haría revisar toooooda la web e ir modificando todas las imágenes y links a páginas internas. Encontré al rato de escribir esto un post en inglés que decía que con esta simple instrucción en el head se solucionaba

Código HTML:
Ver original
  1. <base href="http://www.miweb.com/">

Lo he probado y funciona, pero la verdad es que no sé si tiene alguna otra implicación que yo desconozca el hecho de incluir esto.

Gracias de nuevo por tu respuesta.

Etiquetas: amigables, htaccess, urls
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 08:24.