Categories
programación

Añadir código a páginas web estáticas usando .htaccess y php

Este ejemplo nos permite añadir código propio antes y después de las páginas web que se sirven desde nuestro servidor. Esto puede ser útil si queremos añadir anuncios a todas las página a las que se accedan, o si queremos añadir algo concreto (como en mi caso, un poco de javascript).

Para el ejemplo necesitaremos los siguientes ficheros:

  • .htaccess
  • 1.# Estas dos directivas establecen que todas las solicitudes de páginas .htm y .html sean procesadas por un 'Action'
    2.AddHandler headered .htm
    3.AddHandler headered .html
    4.# Se especifica el archivo .php asignado al 'Action' definido antes
    5.Action headered /header/header.php
  • header.php
  • 01.<?php
    02.# Ficheros de cabecera y pie de página
    03.$header = "header.html";
    04.$footer = "footer.html";
    05.# Extracción de la url del fichero que se ha solicitado
    06.$file = $_SERVER["PATH_TRANSLATED"];
    07.# Volcado a la pantalla de los tres ficheros
    08.readfile($header);
    09.readfile($file);
    10.readfile($footer);
    11.?>
  • header.html
  • 1.<b>This is my header.</b>
    2.<hr>
  • footer.html
  • 1.<hr>
    2.<b>This is my footer.</b>
  • sample.html
  • 1.A sample page.  The header and footer should appear on this page without actually putting them in this file.

Con todos estos archivos situados en el mismo directorio, al acceder a la dirección URL del fichero sample.html (por ejemplo http://localhost/sample.html) deberíamos ver lo siguiente:

wrapper_php

Este ejemplo no es universal y depende de la configuración del servidor. A mi en concreto me ha dado problemas con la variable “PATH_TRANSLATED” que es de donde se obtiene la url de la página solicitada, y para solventarlo he introducido el código:

1.<?php
2.var_dump($_SERVER);
3.?>

que muestra por pantalla todas las variables de php presentes. Es posible que haya en estas variables alguna barra (/) “de más”, por lo que también es útil hacer uso de la función substr.

Fuente webpronews.com

Leave a Reply

Your email address will not be published. Required fields are marked *