Blog de Gonzalo

SERVER SIDE INCLUDES

Los Server Side Includes o SSI, o Inclusiones en la parte Servidor, facilitan incluir contenido dinámico a documentos HTML estático, sin necesidad de usar un lenguaje de programación del lado servidor como php. SSI son directivas que se introducen en páginas HTML y son evaluadas por el servidor, en este caso Apache.
Para poder usar las directivas SSI hay que configurar el servidor e indicar a que extensiones de ficheros se les permite las directivas SSI con un .htaccess o la confifguración de Apache para el sitio.
NOTA: En la información que he encontrado por internet solo hablan de ficheros con extensión .shtml, en mi ordenador personal, que es windows, me ha permitido usar las directivas SSI con ficheros html y con ficheros php, en el servidor donde tengo mi página, y este blog, que es linux, me ha permitido usar las directivas SSI con ficheros html.
Algunas directivas SSI disponibles:

  • Hora local: <!--#echo var="DATE_LOCAL" -->
  • Fecha ultima modificación de un fichero: <!--#flastmod file="ssi.html" -->
  • Personalizar error ssi: <!--#config errmsg="[Error SSI]" -->
  • Variables: <!--#set var="name" value="Gonzalo" -->
  • Usar condicionales: <!--#if expr="%{TIME_HOUR} < 14" -->Buenos díasBuenas tardes<!--#endif -->

La configuración de apache sería:

Options +Includes
AddOutputFilter INCLUDES .html .php

Como ya he comentado antes, esta configuración me ha funcionado en windows 10 para html y php. En mi servidor solo me ha servido con html así que habría que quitar el php. Hay otra directiva para la configuración que es usar XBitHack on que le dice a Apache que examine ficheros buscando directivas SSI si los ficheros tienen el bit de ejecución configurado. Asi que para añadir directivas SSI a una página existente, en lugar de tener que cambiarle el nombre, solo tendría que convertirla en ejecutable usando chmod.Yo me he decantado la otra porque me ha gustado más.
Estos son unos ejemplos sencillos. Pero yo la directiva ssi que más he usado y la que más útil me parece, en mi opinión, es la de poder incluir otros ficheros html dentro de ficheros html. Y creo que es útil ya que si tenemos una página web que tiene contenido estático se pueden separar las cabeceras, el contenido y los pies de página y si hay que cambiar algo en las cabeceras o pies de página solo se modifica un fichero, o dos y no todas las páginas estáticas.
Ejemplo para incluir ficheros html dentro de otros ficheros html:
Fichero index.html

//cabecera html
Hola bienvenido a mi web
<#include file="menu.html">

//Resto de código html

Fichero menu.html

  • Opcion 1
  • Opcion 2
  • Opcion 3

En el ejemplo anterior se usa la directiva include file porque el fichero a incluir, en este caso menu.html, está en la misma carpeta que el fichero index.html pero si el fichero a incluir estuviese en otra ruta habría que usar include virtual y la ruta comenzando desde el raiz del root es decir Espero que os haya parecido interesante

Compartir en twitter