PDF de programación - Configuración y uso de Server Side Includes (SSI) en Apache

Imágen de pdf Configuración y uso de Server Side Includes (SSI) en Apache

Configuración y uso de Server Side Includes (SSI) en Apachegráfica de visualizaciones

Actualizado el 24 de Octubre del 2020 (Publicado el 26 de Septiembre del 2018)
1.013 visualizaciones desde el 26 de Septiembre del 2018
86,1 KB
8 paginas
Creado hace 19a (04/08/2004)
Configuraci´on y uso de Server Side Includes (SSI) en
Apache

Paco Brufal, < [email protected] >

Versi´on 0.1, Octubre 1999

Este peque˜no documento explica de manera sencilla c´omo configurar y usar las instrucciones Server Side Includes
(SSI) para crear documentos HTML de forma din´amica y sencilla. Asi mismo, este documento se distribuye SIN
NINGUNA GARANTIA bajo licencia GPL. No hace falta decir que se admiten sugerencias, ejemplos, correcciones,
etc. para posteriores revisiones.

Contents

1 Introducci´on.

2 Configuraci´on de Apache

2.1 Datos de la conexi´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.2 Restringir el acceso a determinadas partes del servidor . . . . . . . . . . . . . . . . . . . . . .

2.3 Personalizar las p´aginas de error.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.4 Consideraciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3 Anexos

3.1 Anexo A.- Algunas etiquetas interesantes de SSI

. . . . . . . . . . . . . . . . . . . . . . . . .

3.2 Anexo B.- Algunas variables que se pueden usar con SSI . . . . . . . . . . . . . . . . . . . . .

3.3 Anexo C.- C´odigos de Idioma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

2

2

3

3

6

6

6

6

7

1 Introducci´on.

El ”lenguaje” SSI (Server Side Includes) son una serie de ”tags” o etiquetas con un formato determinado,
que se incluyen dentro del c´odigo HTML de una p´agina, d´andole dinamismo y ahorr´andonos algo de trabajo.
El formato de los tags tiene esta forma:

[codigo HTML...]
Hora local: <!--#echo var="$DATE_LOCAL"-->
[codigo HMTL...]

El servidor, al enviar esa orden, la sustituiria por la variable $DATE LOCAL, quedando m´as o menos as´ı:

Hora local: Tuesday, 14-Sep-1999 09:35:23 CEST

El servidor web, antes de enviar ´estas p´aginas, sustituye las etiquetas SSI por sus valores correspondientes,
es decir, crea las p´aginas ”on-the-fly” y las env´ıa al navegador. No voy a extenderme m´as, puesto que el SSI
no tiene demasiada dificultad de aprendizaje. Si deseas saber m´as sobre SSI, visita http://www.apache.org.

2. Configuraci´on de Apache

2

2 Configuraci´on de Apache

Vamos a configurar el servidor Apache. La distribuci´on de Linux que he usado yo es Debian 2.1 (Slink),
aunque no creo que difiera mucho de otras distribuciones. Revisa los ficheros de configuraci´on de tu servidor
y familiarizate con ellos. Si ves que algo de los que pongo no lo tienes en tus ficheros, a˜nadelo. En caso que
lo tengas, pero comentado, descomentalo. Lo primero que necesitamos es decirle que acepte etiquetas SSI
descomentando la siguiente linea en la secci´on de los LoadModule, en el fichero /etc/apache/httpd.conf:

LoadModule includes_module /usr/lib/apache/1.3/mod_include.so

Para que el servidor reconozca la extensi´on .shtml (la que llevan las p´aginas que incluyen SSI), a˜nadiremos
esto al fichero /etc/apache/srm.conf:

# To use server-parsed HTML files
AddType text/html .shtml
AddHandler server-parsed .shtml

Tambi´en podemos poner la opci´on ”XBitHack”. Poniendo esta opci´on, y haciendo ejecutables los ficheros
HTML, el servidor comprobar´a si esos fichero tienen c´odigo SSI.

Ahora vamos al fichero /etc/apache/access.conf. Miramos dentro del bloque ”<Directory /var/www>” (o
lo que es lo mismo, el DocumentRoot, donde se alojan las p´aginas del servidor) y buscamos una linea que
empiece por ”Options”, que estar´a al principio del bloque. Bien, pues si esa linea es algo parecido a esto:

Options Indexes FollowSymLinks

la dejaremos as´ı

Options Indexes FollowSymLinks +Includes

Con esto ya podemos incluir etiquetas SSI en nuestras p´aginas web. Para hacer este documento un poco
m´as util ;) voy a poner unos ejemplos de uso del SSI:

1. Datos de la conexi´on

2. Restringir el acceso a determinadas partes del servidor

3. Personalizar las p´aginas de error

2.1 Datos de la conexi´on

Este ejemplo servir´a para familiarizarnos con SSI. Se trata de una simple p´agina en la que pondremos todos
los tags SSI que queramos, y al verla desde un navegador, el servidor sustituir´a cada variable por su valor
correspondiente, as´ı sabremos qu´e es y para que sirve cada variable.

DATE_GMT <!--#echo var="DATE_GMT" --> <br>
DATE_LOCAL <!--#echo var="DATE_LOCAL" --> <br>
DOCUMENT_NAME <!--#echo var="DOCUMENT_NAME" --> <br>
DOCUMENT_PATH_INFO <!--#echo var="DOCUMENT_PATH_INFO" --> <br>
DOCUMENT_ROOT <!--#echo var="DOCUMENT_ROOT" --> <br>
DOCUMENT_URI <!--#echo var="DOCUMENT_URI" --> <br>
LAST_MODIFIED <!--#echo var="LAST_MODIFIED" --> <br>
GATEWAY_INTERFACE <!--#echo var="GATEWAY_INTERFACE" --> <br>
HTTP_ACCEPT <!--#echo var="HTTP_ACCEPT" --> <br>
HTTP_ACCEPT_CHARSET <!--#echo var="HTTP_ACCEPT_CHARSET" --> <br>

2. Configuraci´on de Apache

3

HTTP_ACCEPT_ENCODING <!--#echo var="HTTP_ACCEPT_ENCODING" --> <br>
HTTP_ACCEPT_LANGUAGE <!--#echo var="HTTP_ACCEPT_LANGUAGE" --> <br>
HTTP_CONNECTION <!--#echo var="HTTP_CONNECTION" --> <br>
HTTP_COOKIE <!--#echo var="HTTP_COOKIE" --> <br>
HTTP_HOST <!--#echo var="HTTP_HOST" --> <br>
HTTP_IF_MODIFIED_SINCE <!--#echo var="HTTP_IF_MODIFIED_SINCE" --> <br>
HTTP_PRAGMA <!--#echo var="HTTP_PRAGMA" --> <br>
HTTP_USER_AGENT <!--#echo var="HTTP_USER_AGENT" --> <br>
PATH <!--#echo var="PATH" --> <br>
QUERY_STRING <!--#echo var="QUERY_STRING" --> <br>
REMOTE_ADDR <!--#echo var="REMOTE_ADDR" --> <br>
REMOTE_HOST <!--#echo var="REMOTE_HOST" --> <br>
REMOTE_PORT <!--#echo var="REMOTE_PORT" --> <br>
REQUEST_METHOD <!--#echo var="REQUEST_METHOD" --> <br>
SCRIPT_FILENAME <!--#echo var="SCRIPT_FILENAME" --> <br>
SERVER_ADMIN <!--#echo var="SERVER_ADMIN" --> <br>
SERVER_NAME <!--#echo var="SERVER_NAME" --> <br>
SERVER_PORT <!--#echo var="SERVER_PORT" --> <br>
SERVER_PROTOCOL <!--#echo var="SERVER_PROTOCOL" --> <br>
SERVER_SIGNATURE <!--#echo var="SERVER_SIGNATURE" --> <br>
SERVER_SOFTWARE <!--#echo var="SERVER_SOFTWARE" --> <br>
SCRIPT_NAME <!--#echo var="SCRIPT_NAME" --> <br>
USER_NAME <!--#echo var="USER_NAME" --> <br>

2.2 Restringir el acceso a determinadas partes del servidor

Con este peque˜no trozo de c´odigo podemos ocultar un enlace seg´un desde donde venga la petici´on de la
p´agina. Es decir, si alguien de nuestra red local solicita una p´agina, el servidor comprobar´a la IP, y si
cumple con la regla SSI, mostrar´a el enlace en la p´agina web. En caso contrario, no lo mostrar´a.

El c´odigo ser´ıa algo as´ı:

[...resto de la p´agina...]
<!--#if expr="$REMOTE_ADDR = /^192.168.1./" -->

<a href="boletin_interno.html">Boletin Interno de la Empresa</a>

<!--#endif -->
[...resto de la p´agina...]

Si la IP que solicita la p´agina est´a en el rango 192.168.1.xxx, podr´a ver el enlace. En cambio, si la IP
212.23.125.56 (p. ej.) solicita la misma p´agina, no ver´a el enlace.

2.3 Personalizar las p´aginas de error.

Con este ejemplo, lo que pretendemos es que cada vez que se produzca un error, el servidor nos diga qu´e
clase de error se ha producido de una manera que cualquier persona lo pueda entender, y no con el t´ıpico
error ”Error 404” y esas cosas. Adem´as, las haremos en varios idiomas, para que cada persona que vea un
error, lo pueda leer seg´un con el idioma preferente que tenga definido en el navegador.

Lo primero que haremos ser´a a˜nadir este bloque al final del fichero /etc/apache/srm.conf

# Asignamos un alias a la ruta /var/errordocs/,
# es decir, que el path /var/errordocs/ ser´a
# la URL http://localhost/errordocs
# (al igual que /usr/lib/cgi-bin/ es http://localhost/cgi-bin/...)
Alias /errordocs /var/errordocs

2. Configuraci´on de Apache

4

# Definimos las propiedades de ese directorio
<Directory /var/errordocs>

AllowOverride none
Options MultiViews IncludesNoExec FollowSymLinks
AddType text/html .shtml
AddHandler server-parsed .shtml

</Directory>

# Asignamos un documento por cada error (puedes poner tantos como errores
# existan).
ErrorDocument 403 /errordocs/403.shtml
ErrorDocument 404 /errordocs/404.shtml
ErrorDocument 500 /errordocs/500.shtml
ErrorDocument 400 /errordocs/400.shtml

Ahora vamos a crear las p´aginas de error, que se alojar´an en el directorio /var/errordocs. Los nombres de
los ficheros han de ser los que definimos en el fichero /etc/apache/srm.conf. El dise˜no de la p´agina es com´un,
lo ´unico que cambia es el cuerpo y el pie de p´agina. Para elegir el idioma del mensaje, usaremos algo as´ı:

<!--#if expr="$HTTP_ACCEPT_LANGUAGE = /^es-ES/" -->

<!--#include virtual="404_es.html" -->

<!--#endif -->
<!--#if expr="$HTTP_ACCEPT_LANGUAGE = /^en/" -->

<!--#include virtual="404_en.html" -->

<!--#endif -->
[...todas las condiciones que desees...]

Al final de cada p´agina de error, incluiremos la orden

<!--#include virtual="foot.shtml"-->

para que en el pie de p´agina aparezcan una serie de datos variables y comunes a todas las p´aginas de error.
Con esto lo que nos ahorramos es trabajo, ya que lo escribimos una vez, y lo podemos usar en todos las p´aginas
de error. Aqui pongo un peque˜no fichero de ejemplo, concretamente el fichero /var/errordocs/404.shtml, que
saldr´a cuando alguien pida una p´agina que no existe:

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Author" content="Paco Brufal">
<title>Error!</title>

</head>

<body text="#000000" bgcolor="#000000" link="#0000EF" vlink="#51188E"
alink="#FF0000">

<center>

<!-- Incluimos una imagen de error -->
<img src="/errordocs/error.jpg" width="320" height="89" alt="Error!"
border="0" align="top">
<hr WIDTH="100%">

<!-- Condiciones del idioma -->

2. Configuraci´on de Apache

5

<!--#if expr="$HTTP_ACCEPT_LANGUAGE = /^es-ES/" -->

<!--#include virtual="404_es.html" -->

<!--#endif -->
<!--#if expr="$HTTP_ACCEPT_LANGUAGE = /^en/" -->

<!--#include virtual="404_en.html" -->

<!--#endif -->
<!-- [...todas las condiciones que desees...] -->

<!-- El pie de p´agina es comun -->
<!--#include virtual="foot.shtml" -
  • Links de descarga
http://lwp-l.com/pdf13617

Comentarios de: Configuración y uso de Server Side Includes (SSI) en Apache (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad