- Bitacora de guebs - hosting, alojamiento web, hospedaje web y dominios - http://bitacora.guebs.com -
Introducción a los “Server Side Includes” (SSI)
Publicado por webmaster el día 11/09/2005 en Desarrollo web
Los Server Side Includes, o simplemente SSI, nos proporcionan una sencilla forma de automatizar ciertos aspectos de la creación y posterior mantenimiento de nuestro sitio web, y sin necesidad de saber programar en Perl o PHP.
Los SSI (Server Side Includes) son directivas insertadas en páginas HTML que nos permiten inserción de contenido generado dinámicamente en nuestras páginas web. Como PHP pero mucho más fácil.
Para que los SSI funcionen, las páginas HTML que las incluyen deben ser evaluadas por Apache antes de mostrar su contenido al navegador cliente. Por este motivo, servir páginas que hacen uso de SSI consume más recursos del sistema que el servir páginas HTML normales.
El uso de SSI consume más recursos del sistema su utilización supone una carga adicional del servidor. Aunque esto es inevitable y lo mismo ocurre con los scripts en PHP o CGI, es una cuestión de comodidad contra eficiencia. Obviamente, no debemos hacer que Apache evalúe todas las páginas HTML antes de devolverlas al cliente, ya que seguramente en muchas de ellas no habrá directivas SSI y estaremos sobrecargando el sistema inútilmente. Por lo tanto, debemos diferenciar las páginas HTML y las que incluyen instrucciones SSI, para ello nada mejor que la solución estándar, la de usar la extensión "shtml" con las páginas que deben ser evaluadas.
Nota: Todos nuestros planes de alojamiento tienen habilitada la posibilidad de utilizar SSI por lo que no es necesario que leaís esta sección para utilizar SSI en vuestro plan de alojamiento.
Para permitir el uso de SSI en todo tu servidor o en un directorio concreto debes tener la directiva "Options All" o "Options +Includes" en el fichero de configuración de Apache, httpd.conf, o en un archivo htaccess. Debes tener algo así:
Además, como queremos que Apache únicamente evalúe los archivos que tengan extensión "shtml", esto también tendremos que indicarlo en httpd.conf o en el archivo htaccess que usemos. Para ello debes incluir las siguientes líneas:
Pero que ocurre cuando queremos usar SSI en una página web, pagina.html, que previamente no las usaba y que por lo tanto su extensión no es "shtml"? Tenemos dos opciones:
Para indicar a Apache que evalúe una página concreta, simplemente tenemos que dar permisos de ejecución a este fichero:
echo permite imprimir ciertos datos como por ejemplo la fecha local, fecha GMT, fecha de la ultima modificación del fichero, variables definidas previamente, variables de entorno como DOCUMENT_URI, REMOTE_ADDR, SERVER_NAME, SERVER_PORT, etc.
La siguiente directiva imprime la fecha y hora GMT:
La siguiente directiva muestra la fecha y hora local:
La siguiente directiva muestra la fecha y hora de la última actualización del fichero:
La siguiente directiva muestra el valor de la variable NOMBRE, la cual como se puede observar ha sido definida previamente:
La siguiente directiva muestra el número IP del cliente:
include permite la inserción del contenido de otro fichero en el fichero actual. Resulta muy práctico para incluir una cabecera común en todos nuestros documentos:
exec permite la ejecución de un programa externo desde el documento actual. Podemos ejecutar un programa ejecutable pasándole comandos de la siguiente forma:
Aunque también podemos ejecutar un script CGI:
Debemos comentar que esta última directiva, exec, suele estar deshabilitada en la mayoría de los entornos de hosting virtual, por lo que sino funciona… posiblemente esta sea la causa.
config permite configurar la forma en la que se muestran ciertos tipos de datos.
La siguiente directiva configura el mensaje de error por defecto:
La siguiente directiva configura el formato en el que se muestras las fechas:
Artículo procedente de Bitacora de guebs - hosting, alojamiento web, hospedaje web y dominios: http://bitacora.guebs.com
Dirección del artículo: http://bitacora.guebs.com/articulo/14/introduccion-server-side-includes-ssi/