Include virtual: Realizar includes de ficheros con htaccess y Apache

Nuevo post de htaccess para hablar del comando include virtual de SSI. La funcionalidad de este comando es la de incluir ficheros del servidor desde un archivo HTML.

Muy similar al include file, también se pueden incluir ficheros con PHP:

¿Qué es SSI?

SSI son las siglas de Server Side Includes. Son comandos/directivas que se interpretan por el servidor cuando se sirven páginas HTML.

Se suele usar mayoritariamente para incluir fragmentos de página reutilizables en otros HTML, como por ejemplo: Cabeceras, menús, piés de página, mostrar la hora local…

¿Cómo activar SSI en nuestro servidor Apache?

Tras repasar la documentación oficial vamos a ver cómo activar esta funcionalidad SSI en el servidor. Debemos añadir la siguiente línea en un archivo htaccess o en el fichero httpd.conf de Apache:

Options +Includes

Ahora solo nos queda avisar al servidor en que tipos de archivo se van a incluir dichas directivas de include, en nuestro caso HTML:

AddType text/html .html
AddOutputFilter INCLUDES .html

Ejemplo de include virtual

Os voy a mostrar varios códigos de ejemplo para hacer includes en ficheros HTML:

<!--#include virtual="nombrefichero.html" -->

De esta manera estaríamos incluyendo un fichero dentro de un HTML. Admite incluir ficheros PHP que a su vez serán interpretados/resueltos por el servidor Apache. En este caso el fichero se encuentra en la misma carpeta que el HTML.

<!--#include virtual="../nombrefichero.html" -->

Con el código superior estamos incluyendo un fichero del nivel superior a la carpeta donde se encuentra el HTML.

<!--#include virtual="/nombrefichero.html" -->

Con el código superior estamos incluyendo un fichero de la raíz del servidor donde está configurado el dominio.

Mensaje de error al hacer include virtual

En caso de tener mal referenciado el fichero incluído saldrá el siguiente mensaje de error:

[an error occurred while processing this directive]

Este mensaje se puede configurar, podéis ve cómo se hace en este post:

compartir
Publicado por
Aner Barrena