Ver Mensaje Individual
  #18 (permalink)  
Antiguo 22/04/2009, 11:04
maue75
 
Fecha de Ingreso: noviembre-2008
Mensajes: 288
Antigüedad: 15 años, 5 meses
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!