Foros del Web » Creando para Internet » HTML »

htacces ok, pero el html apunta mal las imagenes y otros elementos

Estas en el tema de htacces ok, pero el html apunta mal las imagenes y otros elementos en el foro de HTML en Foros del Web. Hola. Tengo el siguiente problema: He modificado el .htaccess para que me redireccione un link al sitio correspondiente. Hasta ahí, sin problemas. Pero cuando se ...
  #1 (permalink)  
Antiguo 17/04/2009, 14:36
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 16 años
Puntos: 2
htacces ok, pero el html apunta mal las imagenes y otros elementos

Hola.
Tengo el siguiente problema:

He modificado el .htaccess para que me redireccione un link al sitio correspondiente. Hasta ahí, sin problemas.
Pero cuando se carga el .php correspondiente, no se recuperan correctamente los elementos que lo conforman y que están en otras carpetas, como las imágenes o las css.
Todos los elementos quiere buscarlos en la url amigable y no el la real.

¿Cuál es el problema y la solución a esto? ¿Alguien sabe?

Gracias a quién pueda responderme.
  #2 (permalink)  
Antiguo 17/04/2009, 14:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: htacces ok, pero el html apunta mal las imagenes y otros elementos

Tema trasladado desde PHP

Prueba usar la ruta absoluta ej: /imagenes/image.jpg

Saludos.
  #3 (permalink)  
Antiguo 17/04/2009, 14:49
axz
 
Fecha de Ingreso: mayo-2005
Mensajes: 360
Antigüedad: 19 años, 6 meses
Puntos: 10
Respuesta: htacces ok, pero el html apunta mal las imagenes y otros elementos

hola maue75 si tu problema es el siguiente:
En tu .htaccess estas declarando que por ejemplo lo de /home/generico/css se muestre cuando acceden a http://tusitio.com/css asumo que con directivas REWRITE, tu solución sería justo la que GatorV te sugiere.

Solo una observación, bueno pero los moderadores sabrán más al respecto, no estoy seguro de si éste post debería estar aquí, en PHP o incluso quizá en algún foro de APACHE :p

Saludos
  #4 (permalink)  
Antiguo 17/04/2009, 15:05
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 16 años
Puntos: 2
Respuesta: htacces ok, pero el html apunta mal las imagenes y otros elementos

GatorV, he probado pero no me ha dado resultado.

Las imágenes se van a buscar al directorio raíz del servidor pero no al del sitio.

es decir que tengo algo como esto:

url real : midominio/mostrar.php?cliente=45
url amigable : midominio/mostrar/cliente/45

Si coloco:
<img src='imagenes/cuadro.gif'>

las imágenes se van a buscar a:
C:\midominio\mostrar\cliente\imagenes\cuadro.gif

y si pongo:
<img src='/imagenes/cuadro.gif'>

las imágenes se van a buscar a:
C:\imagenes\cuadro.gif (no dentro de la carpeta de midominio )


Se entiende? Estoy recién realizando el primer trabajo con esto del htaccess. ¿Cómo se supone que debe trabajarse este problema?
Colocando una $var con el path_root y luego /imagenes....

El tema con ello es que debo tocar absolutamente todo el código en cada aparición de imágenes u otros elementos que no tenga en el directorio corriente.

Acaso, ¿no es que agregando el .htaccess y una función que reacomode los links reales a amigables ya estaría todo el trabajo?

Bueno, espero alguno me aclare. Gracias.
  #5 (permalink)  
Antiguo 17/04/2009, 15:07
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 16 años
Puntos: 2
Respuesta: htacces ok, pero el html apunta mal las imagenes y otros elementos

Gracias axz. Si, probe lo dicho por GatorV. Aun no encuentro la solución.
  #6 (permalink)  
Antiguo 17/04/2009, 15:20
axz
 
Fecha de Ingreso: mayo-2005
Mensajes: 360
Antigüedad: 19 años, 6 meses
Puntos: 10
Respuesta: htacces ok, pero el html apunta mal las imagenes y otros elementos

manue75, lo de usar $var es una solución, pero bastante talachuda, lo que quieres lo puedes lograr con directivas REWRITE de Apache. Ahora, algunas preguntas:
* Podrías postearnos tu contenido de .htaccess?
* Asumo que estas usando un servidor windows. Al final publicaras tu site en un servidor windows?
* Si usas .htaccess, en qué carpeta estas guardando dicho archivo?
* Es posible que una estructura de directorios ayude

Tamos por acá, un saludo
  #7 (permalink)  
Antiguo 17/04/2009, 17:16
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 16 años
Puntos: 2
Respuesta: htacces ok, pero el html apunta mal las imagenes y otros elementos

axz,

El servidor supongo que es unix.

Estoy haciendo pruebas sobre un subdirectorio 'comodoro'.

El directorio raíz es entonces:
public_html/comodoro/

sobre él tengo el .htaccess :

RewriteEngine On
RewriteRule ^comodoro/(.*)/(.*)$ contenidos.php?$1=$2



Y así es que al direccionar las imagnes a '/imagenes/...' linkea a la raíz y no quiero eso, sino que vaya a /comodoro.

Espero este más claro ahora. gracias.
  #8 (permalink)  
Antiguo 17/04/2009, 19:35
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: htacces ok, pero el html apunta mal las imagenes y otros elementos

/comodoro/imagenes/imagen.jpg
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 17/04/2009, 22:03
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 16 años
Puntos: 2
Respuesta: htacces ok, pero el html apunta mal las imagenes y otros elementos

Si Triby, creo que esa será la mejor solución. Aunque también deberé tocar cada elemento y modificar su path.

El tema es que el directorio corriente es 'comodoro', no debería tener que poner el path a él .

public_html tiene los archivos de mi sitio padre. (no el que estoy probando ahora)
public_html/comodoro es el directorio sobre donde estoy haciendo pruebas con htaccess.
funciona como otro sitio independiente.
Ahi tengo el sitio de prueba con su propio index.php .
Aquí es donde pongo el htaccess.
public_html/comodoro/imagenes Tengo las imagenes propias de comodoro.

asi es que cuando coloco las imagenes <img src='imagenes/cuadro.jpg'>
las busca en 'url-amigable/imagenes/cuadro.jpg'

y no en 'dir-corriente/imagenes/cuadro.jpg'

Supongo también es un problema de error de concepto en mi entender el funcionamiento del htaccess.
Por lo que veo, al usar htaccess todo el sitio se mueve dentro de la url-amigable, y solo se invoca a la url-real cuando se recibe el path desde el navegador del usuario. Solo en ese primer paso. En lo demás, el servidor mantiene el $PHP_SELF con valor de la url-amigable.
( mmmhh... creo que voy a tener que probar eso para quitarme la duda ).
  #10 (permalink)  
Antiguo 17/04/2009, 22:35
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 16 años
Puntos: 2
Respuesta: htacces ok, pero el html apunta mal las imagenes y otros elementos

uhh que merengue esto!!
ya probe el $PHP_SELF, y da la url-real .
no entiendo porque los objetos (imagenes) toman la url-amigable .
un <img src=imagenes/cuadro.jpg>
el html lo busca en url-amigable/imagenes/cuadro.jpg. y obvio, no lo encuentra.

Bueno, igualmente, cuando lleve todo esto al hosting definitivo y todo este bajo public_html, será lo mismo poner 'imagenes' que '/imagenes' en el path del objeto.

Igualmente, gracias por leer. Y si alguno sabe clarificarme el tema se lo agradeceré.
Saludos.
  #11 (permalink)  
Antiguo 18/04/2009, 01:26
 
Fecha de Ingreso: agosto-2006
Mensajes: 191
Antigüedad: 18 años, 3 meses
Puntos: 3
Respuesta: htacces ok, pero el html apunta mal las imagenes y otros elementos

Puedes probar con la etiqueta BASE.

http://www.formatoweb.com.ar/blog/20...nes-y-estilos/

Un saludo.
__________________
El mejor consejo lo da la experiencia, aunque este siempre llega tarde.
Cacharreando con Joomla
  #12 (permalink)  
Antiguo 18/04/2009, 03:11
axz
 
Fecha de Ingreso: mayo-2005
Mensajes: 360
Antigüedad: 19 años, 6 meses
Puntos: 10
Respuesta: htacces ok, pero el html apunta mal las imagenes y otros elementos

maue75, una disculpa salí un momentote y perdí el hilo del post ... veo que hay más sugerencias aunque me sigo quedando con la idea de solucionarlo desde el .htaccess ... pero va un pequeño regaño de esos en buen plan: No mencionaste el detalle de que hay un sitio padre y estas creando uno dentro de él ... como sea, creo que así es, va la propuesta con el .htaccess:
Código:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} ^/imagenes/
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteCond /public_html/comodoro%{REQUEST_FILENAME} -f
RewriteRule ^/imagenes/(.+) /public_html/comodoro/imagenes/$1 [L]
Con esto, cuando haya un llamado a http://tusitio.com/imagenes/img.jpg, apache buscará a /public_html/comodoro/imagenes/img.jpg. De igual forma, si se encuentra en tu código un llamado a /imagenes/img.jpg, apache buscará a /public_html/comodoro/imagenes/img.jpg.

Ojo, estoy tomando en cuenta que la estructura /public_html/comodoro/imagenes/ existe

Inténtale así y nos cuentas.

Saludos

Última edición por axz; 18/04/2009 a las 03:33
  #13 (permalink)  
Antiguo 18/04/2009, 03:31
axz
 
Fecha de Ingreso: mayo-2005
Mensajes: 360
Antigüedad: 19 años, 6 meses
Puntos: 10
Respuesta: htacces ok, pero el html apunta mal las imagenes y otros elementos

Otra cosa ...
Cita:
asi es que cuando coloco las imagenes <img src='imagenes/cuadro.jpg'>
las busca en 'url-amigable/imagenes/cuadro.jpg'

y no en 'dir-corriente/imagenes/cuadro.jpg'

Supongo también es un problema de error de concepto en mi entender el funcionamiento del htaccess.
Ahí no tiene nada que ver el .htaccess ... eso es el comportamiento normal, híjole me costó un poco entender lo de dir-corriente, url-amigable, url-real ... pero supongo q será x la hora .. jajaja ... como sea:

Si en tu directorio /public_html/comodoro/ tienes un archivo.html y dentro de él tienes esto <img src="imagenes/cuadro.jpg" />, lo normal es que el servidor intente acceder a /public_html/comodoro/imagenes/cuadro.jpg.

Ahora si el mismo archivo lo mueves a /public_html/comodoro/abc, lo normal es que el servidor intente acceder a /public_html/comodoro/abc/imagenes/cuadro.jpg

Si quieres que en ambos casos el servidor intente acceder a /public_html/comodoro/imagenes/cuadro.jpg ... tendrías que sustituir tu <img src="imagenes/cuadro.jpg" /> por <img src="/imagenes/cuadro.jpg" />

Y esto sin tocar el .htaccess
  #14 (permalink)  
Antiguo 18/04/2009, 15:03
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 16 años
Puntos: 2
Respuesta: htacces ok, pero el html apunta mal las imagenes y otros elementos

Gracias Trutxof, leí el link que pasaste parece que puedo solucionar bastante con eso, aunque en lo que probe no he pegado justo en la tecla. Seguiré probando.

y Muchas gracias axz!! por toda la atención que has puesto, y es cierto... en mi deseo de querer hacer la explicación simple, con eso de las url-amigables, real, corriente.. he complicado un poco la cosa... .

Bueno, el tema es que he probado lo que decis, pero aun no tengo resultados positivos. Debería haberlos creo. Confio que está bien lo que me decis, pero algo parece haber en las condiciones del RewriteCond que no afecta la dir donde el buscador busca las imagenes.

las imagenes las tengo en 'http://midominio.com/comodoro/imagenes'.
estoy probando con <img src='/imagenes/img.jpg'>

cuando voy al explorer, la imagenen no se ve, y al pulsar boton derecho propiedades sobre el espacio de la imagen, su path de busqueda dice:
'http://midominio.com/imagenes/img.jpg'

cuando debiera ser:
'http://midominio.com/comodoro/imagenes/img.jpg'


Se que cuando lleve esto al sitio final no debería tener todos estos líos pues todo se maneja sobre public_html, pero ya saben que uno se emperra en esto y quiere ver como es que funciona, sobre todo para poder efectuar pruebas antes de mandarlo al sitio online.

Para colmo de males, hice una rápida prueba en el servidor del sitio online y ni bola al htaccess, hablo con soporte, y me dicen que el servidor funciona en windows y que no puedo usar el htaccess. "...cualquier otra consulta, no dude en comunicarse..."

Bueno, axz, si se te ocurre alguna modificación que se haya pasado, bien, y sino, otra vez, muchas gracias por tu guía que igualmente me ha servido para aprender un poco más.
  #15 (permalink)  
Antiguo 20/04/2009, 01:14
axz
 
Fecha de Ingreso: mayo-2005
Mensajes: 360
Antigüedad: 19 años, 6 meses
Puntos: 10
Respuesta: htacces ok, pero el html apunta mal las imagenes y otros elementos

maue75 pues si estas usando windows el .htaccess dificilmente te funciona, puedes mover las directivas de tu httpd.conf para utilizar algún otro nombre de archivo en lugar de .htaccess. Sin embargo, checando lo que dices de tu hosting, te recomiendo que lo cambies. Ok, ya de x sí creo q no es bueno un hosting windows (espero no crear controversia x eso) y ahora apache sobre windows, creo q todavía es peor (una opinión muy personal).

Por otra parte ... puedes intentar con hosts virtuales ... no sé si ya hayas probado eso ..

Saludos
  #16 (permalink)  
Antiguo 20/04/2009, 11:27
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 16 años
Puntos: 2
Respuesta: htacces ok, pero el html apunta mal las imagenes y otros elementos

axz, gracias.
El tema con el hosting viene difícil porque me dan poca bola, el soporte técnico no es muy bueno. ( ******** ).
Con windows no funciona el .htaccess.

Voy a abrir un post ahora para ver como usar el ISAPI-rewrite que es lo que se usa sobre Windows. Si bien parece que los comandos son iguales, no tengo idea como es la instalación sobre el servidor, si debo hacerla, si el servidor que tengo tendrá lo suficiente para usarlo, etc.
Thanks!
  #17 (permalink)  
Antiguo 20/04/2009, 13:36
axz
 
Fecha de Ingreso: mayo-2005
Mensajes: 360
Antigüedad: 19 años, 6 meses
Puntos: 10
Respuesta: htacces ok, pero el html apunta mal las imagenes y otros elementos

Pues en tal caso, creo que sería prudente que antes cuestionaras a tu proveedor de hosting acerca de qué alternativas te ofrece a cambio ... es posible que sobre el servidor que te ofrecen tenga (aunque sea windows) montado Apache ... o tal vez tenga IIS ... sería bueno ver x donde buscarle.

No hay nada que agradecer maue75 pa' eso estamos en la comunidad, hoy por unos, mañana x otros, todos alguna vez preguntamos

Un gran saludo!
  #18 (permalink)  
Antiguo 22/04/2009, 11:04
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 16 años
Puntos: 2
Respuesta: htacces ok, pero el html apunta mal las imagenes y otros elementos

He encontrado una solución posible, así que dado que el post ha quedado un poco largo voy a recordar el problema planteado:

Buscando hacer una url amigable en una aplicación PHP, modifique el .htaccess ; el problema se planteo al ver que el explorador no mostraba varios elementos como ser imágenes.
( tampoco cargaba las plantillas.css ).

En ese momento una imagen podía tener esta sintaxis:
<img src='imagenes/mi-imagen.jpg'>

La carpeta imagenes colgaba de public_html donde tengo todo el sitio, digamos en una estructura como esta:
public_html
- imagenes
- css
- js
- etc


El problema era que al cambiar el path invocado por el tema del .htaccess, las referencias a las imágenes debían ser corregidas, ya que el servidor internamente apuntaba al nuevo path declarado en el .htaccess.

En algunos casos bastaba con colocar una barra delante de la carpeta para obligar a posicionar en la raíz del sitio: '/imagenes/mi-imagen.jpg'. (como dijo GatorV )

Se agrega también, pero ya es un caso particular mío, que las pruebas las estaba haciendo en una carpeta (comodoro) colgada de public_html y no directamente de public_html.

Pero no basto con corregir el path de las imagenes, debía corregir el path de todo elemento invocado, ya sea un .js, un .php, un .css.
Teniendo en cuenta un pequeño y gran detalle: El explorador y PHP en servidor expresan de distinta manera el path de la aplicación.

Así que la solución no fue tan rápida, y quedo expresada de la siguiente forma:

Cree unas variables que se cargan al inicio:
$raiz='/comodoro/';
$raiz_php= $_SERVER["DOCUMENT_ROOT"].$raiz;

( les recuerdo que $_SERVER["DOCUMENT_ROOT"] dará una salida como esta: '/home/maue75/public_html/comodoro/' ).

Dentro del código HTML, para apuntar a imágenes:

<img src="<? echo $raiz.'imagenes/mi-imagen.jpg';?>" >

<script type="text/javascript" src="<? echo $raiz.'funciones.js';?>" defer="defer"></script>


Dentro de PHP servidor, para incluir programas vía include:

include($raiz_php."css.php");



Yo he utilizado para hacer pruebas una subcarpeta. En el caso normal, no hará falta usar la variable $raiz, y solo habrá que tener cuidado en mencionar las imágenes colocando "/" al principio del archivo o carpeta que lo contiene:
<img src='/imagenes/mi-imagen.jpg">

Para los includes y demás del ambiente PHP, no se si hay otra solución más rápida y fácil, asi que si alguno conoce una alternativa más sensilla, pues que la digAAAA!!!.


Espero que estas aclaraciones sirvan a todo el que realice un .htaccess.


PD: el servidor donde está publicado el sitio real, es windows, y es uno de los tantos que aun no ha instalado el ISAPI rewrite, por lo que me veo obligado a cambiar de plan por uno Linux, ya que no hay forma de convertir las url a urls amigables.

Thanks!
  #19 (permalink)  
Antiguo 22/04/2009, 23:10
axz
 
Fecha de Ingreso: mayo-2005
Mensajes: 360
Antigüedad: 19 años, 6 meses
Puntos: 10
Respuesta: htacces ok, pero el html apunta mal las imagenes y otros elementos

maue75, definitivamente Linux (a mi parecer) sería una excelente opción ... ahora respecto a tu código y solución no está nada mal ... solo una sugerencia:
Si $raiz no la usas más que para declarar el contenido real de $raiz_php. No te compliques ... mételo así:
Código:
$raiz_php= $_SERVER["DOCUMENT_ROOT"].'/comodoro/';
Mejor aún ... decláralo en una constante ... y ésa constante declárala en un archivo que incluyas en todos tus scripts ... de ésta forma si en algún momento tienes que modificar tu raiz ... o hacerla cadena vacía ... solo tendrás que modificar tu archivo a incluir.

Saludos
  #20 (permalink)  
Antiguo 25/04/2009, 07:53
Avatar de kernelcom-com  
Fecha de Ingreso: mayo-2008
Ubicación: Lima
Mensajes: 216
Antigüedad: 16 años, 6 meses
Puntos: 3
Respuesta: htacces ok, pero el html apunta mal las imagenes y otros elementos

Cita:
Iniciado por maue75 Ver Mensaje
Hola.
Tengo el siguiente problema:

He modificado el .htaccess para que me redireccione un link al sitio correspondiente. Hasta ahí, sin problemas.
Pero cuando se carga el .php correspondiente, no se recuperan correctamente los elementos que lo conforman y que están en otras carpetas, como las imágenes o las css.
Todos los elementos quiere buscarlos en la url amigable y no el la real.

¿Cuál es el problema y la solución a esto? ¿Alguien sabe?

Gracias a quién pueda responderme.
Espero poder ayudarte.
http://www.forosdelweb.com/f118/prob...#post2884146:-)
__________________
Las ideas estimulan la mente.(Eric Hoffer)
http://www.reycarlos.com
http://www.clasificadosde.com
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 23:10.