Hay muchas razones para querer procesar archivos HTML como archivos PHP. Algunos webmasters lo hacen porque están convirtiendo un antiguo sitio estático a un sitio web dinámico y no quieren perder pagerank. Otras webs lo hacen porque los motores de búsqueda parecen favorecer a las páginas que tienen extensión .html sobre las que tienen extensión .php. O quizás lo estás haciendo por razones de seguridad… No quieres que los visitantes sepan qué lenguaje de script usas para tu sitio web.
Por suerte, la interpretación de archivos HTML como PHP se consigue fácilmente mediante el uso de un archivo htaccess.
Crear un archivo htaccess
Si no sabes nada sobre archivos htaccess, no te preocupes. Los archivos htaccess son simples archivos de texto que se guardan con extensión .htaccess. Y se crean fácilmente con un editor de texto simple como el Bloc de notas o WordPad. Sólo habrá que escribir o pegar el código necesario, guardar el archivo como .htaccess y subirlo al servidor, en la raíz de nuestro sitio web.
El código
Sólo necesitas una línea de código para hacer esto. Desgraciadamente, el código varía dependiendo de la configuración de tu servidor. Y a menos que tu proveedor de hosting proporcione información sobre esto, no hay manera de saber qué código funcionará. Pero aquí hay ejemplos de código típicos. (Nota: Si estos códigos no funcionan, es necesario consultar a tu hosting.)
→ En hostings que tienen dos versiones de PHP:
Algunos hostings web que tienen, o han tenido, dos versiones de PHP como PHP4 y PHP5, normalmente tienen un “handler” PHP5. El ejemplo de código de abajo interpretará todos los archivos .html y .htm como PHP. (Este código ha sido probado en HostGator y InMotion. Y en el proveedor de hosting gratuito x10Hosting.)
AddHandler application/x-httpd-php5 .html .htm
→ En la mayoría de hostings:
En los hostings que tienen una sola versión de PHP, el siguiente código debaría funcionar. (Este código ha sido probado en Superb y LunaPage.)
AddType application/x-httpd-php .html .htm
o, si la directiva AddType no funciona, puedes usar la directiva AddHandler como sigue:
AddHandler application/x-httpd-php .html .htm
o…
AddHandler x-httpd-php .html .htm
Algunos hostings, como GoDaddy requieren ambas directivas. Así que tu código sería como este:
AddType application/x-httpd-php .htm .html AddHandler x-httpd-php .htm .html
Como última opción, también puedes probar esta forma multilínea que usa la directiva SetHandler:
<FilesMatch "\.(htm|html|php)$"> SetHandler application/x-httpd-php </FilesMatch>
o…
<FilesMatch "\.(htm|html|php)$"> SetHandler application/x-httpd-php5 </FilesMatch>
ACTUALIZACIÓN:
Probando configuraciones en un servidor Linux de 1&1, he comprobado que en este hosting no funciona ninguna de las directivas anteriores, sino que tendríamos que usar la siguiente:
AddType x-mapp-php5 .html .htm
Complicaciones
A veces, puede que ninguno de los códigos de arriba funcione. En este caso, hay varias cosas que podemos hacer:
- Consulta a tu proveedor de hosting para saber la configuración de tu servidor, y ver si se podría usar algún otro código.
- Comprobar que la extensión es correcta. Si nunca has usado archivos htaccess, es fácil equivocarse al crearlos. El fallo más común es guardar el archivo con una extensión errónea. Para arreglar esto, puedes cambiar fácilmente el nombre del archivo después de subirlo al servidor. Renombra el archivo de forma que no tenga nombre pero sí extensión. De forma que el nombre de archivo debería aparecer como “.htaccess“.
- Esperar. A veces los hostings tienen algo llamado “server-side cache” (caché del lado del servidor). Esto significa que los archivos tardan un tiempo en ‘hacer efecto’. Si estás en GoDaddy, por ejemplo, deberías esperar unos 30 minutos.
- Comprobar permisos. Asegúrate de que tus archivos htaccess tienen los permisos correctos. Para ver o cambiar permisos tendrás que usar CHMOD o tu gestor FTP.
Temas de seguridad & rendimiento
Hay algunos asuntos de seguridad de los que deberías ser consciente, sobretodo si estás en un plan de hosting web compartido. Primero, si hay un problema con tu archivo HTACCESS, tu archivo podría ser descargado por tus visitantes o visto como texto. Así que si hay cualquier dato sensible como contraseñas o información de base de datos, nunca deberían ser guardados en un archivo HTML. Segundo, si tu proveedor de hosting cambia la configuración de tu servidor, esto podría afectar a la forma en que tus archivos son procesados. Tercero, si alguna vez piensas mover tu sitio web, tu archivo HTACCESS puede no ser compatible con la nueva configuración. Y finalmente, se estima que los sitios web que usan esta alternativa son ligeramente más lentos que los que simplemente usan archivos PHP.
Por lo tanto, recomendamos esto como una buena solución para sitios web pequeños. (Los sitios web pequeños son aquellos con menos de 50 páginas.) Sin embargo, cuando tu sitio web aumenta de tamaño, sería una buena idea elegir una solución más robusta que será capaz de servir un sitio web de cualquier tamaño.