Includes ASP en servidor Apache
- 9 de Diciembre 2007
- Cajón de sastre, How to, htaccess
A veces tenemos la necesidad de usar includes a la hora de maquetar un sitio para que los distintos componentes de las páginas puedan ser reutilizados y en caso de tener que hacer algún cambio sólo necesitemos actualizar un archivo.
La opción más fácil es utilizar ASP por la sencillez de su sintaxis. La sintaxis de los includes en ASP es:
<!--#include file="directorio/archivo.html" -->
Como se puede apreciar es muy similar a los comentarios en html.
Claro que, en casa no todos tenemos instalado el IIS, ni es tan fácil hacerlo si tienes Windows XP Home. Hay alguna alternativa a IIS gratuita, como Baby Web Server, cuyo funcionamiento no es una maravilla.
La buena noticia es que si tenemos instalado un servidor Apache, como por ejemplo Xampp, podemos “ejecutar” estos archivos con extensión .asp en él. A continuación explico cómo.
La idea surgió después de rehacer esta web utilizando los desconocidos pero útiles SSI.
SSI es un lenguaje del lado del servidor que permite, entre otras cosas, incluir unos archivos en otros o usar variables.
La extensión de los SSI es .shtml. La cuestión es que no hacía mucho tiempo que había cambiado todas las url’s de esta web, y cambiar la extensión de archivo supondría volver a tener que hacer redireccionamientos, etc, así que me decidí por mantener la extensión de archivo .html.
Para ello indiqué al servidor Apache en el archivo .htaccess, que procesara los .html como .shtml mediante la siguiente instrucción:
AddType text/html .shtml
AddHandler server-parsed .html
Esto no es una buena práctica, como bien explican en este tutorial, ya que estamos obligando al servidor a procesar todos los archivos .html aunque no contengan instrucciones SSI. -El método correcto (XBibHack) no quiso funcionar en mi servidor-
Pues bien, aprovechando que la sintaxis de los includes en ASP es idéntica a la de SSI, podemos utilizar este método para que el servidor Apache procese los archivos con extensión .asp como .shtml, y así poder ver un site que utiliza includes ASP en un Apache. Claro, si empezamos de cero, lo más lógico sería utilizar diréctamente la extensión .shtml y no andar liando la manta.
Aunque es una solución de andar por casa, dejo aquí las líneas que habría que incluir en el archivo .htaccess, porque siempre nos pueden sacar de algún apuro:
AddType text/html .shtml .asp
AddType text/html .shtml
AddHandler server-parsed .asp
Options Indexes FollowSymLinks Includes
