• Saltar al contenido principal
  • Saltar a la barra lateral principal

Tecnologías web para servicios de información

Las cosas de las que se me ocurre hablar en clase, pero que luego nunca me da tiempo.

Usted está aquí: Inicio / Software de clase / La importancia del fichero .htaccess

La importancia del fichero .htaccess

18 mayo, 2015 por Jose A. Senso Deja un comentario

Recientemente he publicado una entrada sobre qué hacer después de instalar Drupal. En ella hablo de que una de las primeras cosas debería ser configurar correctamente el fichero .htaccess. Aprovecho ahora para Logo de Apachehablar con más detenimiento de ese fichero, que es fundamental dentro de cualquier servidor web, independientemente del software que lo mueva.

El fichero hypertext access, más conocido como .htaccess, es uno de los más importantes dentro de cualquier servidor web. A pesar de que fue diseñado específicamente para funcionar con servidores Apache, con el paso del tiempo su uso se ha generalizado en el resto de servidores web.

En la mayoría de hosting que contratamos es imposible que nos den acceso al fichero del servidor, el famoso httpd.conf. Pero casi todas las acciones que se realizan con él se pueden llevar a cabo con .htaccess de manera muy eficaz, ya que permite definir directivas de configuración para cada directorio, y de los subdirectorios que de ahí cuelguen.

El hecho de que se pueda contar con un fichero .htaccess en cada directorio del servidor tiene un efecto positivo: permitir controlar mejor el acceso y las directivas a aplicar dentro del contenido de dichos directorio. Pero también tiene un efecto negativo que debemos considerar: afecta a la velocidad del sitio. Cada vez que el cliente lanza una petición, lo primero que hace el servidor es verificar la existencia de este fichero, para aplicar o no sus directrices, lo que afecta directamente al rendimiento del sitio.

Para que estos ficheros sean tenidos en cuenta por el servidor es necesario que la directiva AllowOverride esté activada en el fichero httpd.conf.

A continuación hablaremos de tres elementos claves relacionados con este fichero:

  • Usos concretos
  • Cómo crearlo
  • Cómo protegerlo

 

Usos concretos del fichero .htaccess

Las posibilidades de configuración que ofrece este fichero son inmensas. Trataré de comentar las más importantes:

  • Autorización y control de acceso. El uso más común se centra en emplear el fichero para especificar restricciones de acceso a un directorio (o varios) en concreto. Si no se posee la contraseña no se permitirá el acceso a la información que está almacenada en dicho directorio. El único inconveniente que tiene realizar el control de acceso por este método (también se podría hacer a nivel de hosting o por medio del CMS) reside en que debe existir otro fichero, denominado .htpasswd, que almacene los nombres de usuario y las contraseñas. Esto limita en cierta medida la gestión de contraseñas (no se podría “recordar contraseña”, ni podría ser cambiada por el usuario, sólo por el administrador) y tiene algún que otro problema relacionado con la seguridad. En la web del servidor de Apache explican cómo se debe realizar.

Mensaje de control de acceso

  • Crear URLs amigables. Aunque no está demostrado que contar con un URLs amigables suponga un beneficio directo a nivel SEO, es evidente que influye en la relación entre lo que escribes y el usuario. Siempre le resultará más sencilla, comprensible y lógica una URL amigable que otra llega de números y letras. Para que esto funcione es necesario que el módulo mod_rewrite de Apache esté activado. Con estas líneas en el fichero .htacces debería ser suficiente para que la cosa funcione:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
</IfModule>
  • Limitar el acceso por IP. Existen otras opciones de restringir el acceso al sitio, a un directorio o a un fichero empleando la IP del cliente que hace la petición. Este tipo de operaciones vienen muy bien cuando se están recibiendo muchos ataques de un mismo sitio, o cuando se quiere limitar el acceso a determinado contenido a un rango de IPs determinado. La orden:
<LIMIT GET>
order deny,allow
deny from 1.1.1.1
allow from all
</LIMIT>

impide que pueda acceder la máquina con la IP 1.1.1.1 y permite el acceso a todas las demás. La orden:

<Files index.php>
Order Deny,Allow
Deny from All
Allow from 1.2.3.4
</Files>

Impide que la máquina con el IP 1.2.3.4 pueda acceder al fichero index.php

  • Control de la caché. Se emplea para gestionar la caché web del navegador y/o proxie, reduciendo el consumo de ancho de banda. Se usa también para agilizar la comunicación con el servidor y descargarlo de trabajo. Aunque este proceso también se puede gestionar desde el CMS, en ocasiones es maś efectivo hacerlo desde el htaccess. Por ejemplo, de esta manera se establecería una semana como periodo de vigencia de las imágenes almacenadas en la caché:
<FilesMatch "\.(jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
  • Obligar a usar una conexión segura. Es muy útil si se tiene instalado un certificado SSL. De esta manera se obliga a todo el sitio a que se emplee este certificado. Los agentes de búsqueda, por ejemplo, se redirigirán hacia ahí. Se hace por medio de:
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
  • Control de los tipos MIME. Se emplea para controlar cómo queremos que el servidor gestione los diferentes tipos de formatos MIME. De esta manera, por ejemplo, se puede evitar la descarga de ficheros para filtros y estilo del gestor bibliográfico Endnote:
AddType application/x-endnote-style ens
AddType application/x-endnote-filter enf
  • Indicar la página por defecto. Aunque suele venir configurada en Apache, puede suceder que nos interese cambiar la página principal por defecto. Para ello:
DirectoryIndex welcome.html
  • Página de error 404. El famoso error de que un archivo ya no existe. Es uno de los mayores generadores de penalizaciones SEO. Es posible configurar htaccess para que el sistema muestre una página propia, en vez del típico error: 404 URL not found.
ErrorDocument 404 /error404.html

Si se desea, se pueden personalizar el resto de páginas de error con 403/error403.html; 401/error401.html…

Página 404 personalizada

  • Página de redirección 301. Se trata de redirigir de una página a otra. Se hace así:
Redirect 301 /index.html /nuevo/index.html

Piensa que no es lo mismo la redirección 301 (permanente) que la 302 (temporal). En este blog se explica muy bien la diferencia.

  • Redirigir a otro dominio. Muy útil cuando estás migrando el contenido de un servidor a otro y quieres mantener activos ambos para no sufrir penalizaciones SEO. Para ello:
RewriteEngine onRewriteCond %{HTTP_HOST} ^www.web-antigua..com$ [OR]
RewriteCond %{HTTP_HOST} ^web-antigua.com$
RewriteRule ^/?$ "http://nueva-web.com/" [R=301,L]
  • URLS canónicas. El hecho de que una misma web sea accesible por medio de http://www y por http:// (sin el www) la convierte en dos webs diferentes desde el punto de vista SEO. Teniendo en cuenta que los buscadores suelen penalizar la copia de material, esto implicaría que se considera que una web plagia a la otra. Si tenemos el dominio www.hola.com y queremos captar tanto a los usuarios que se dirijan a www.hola.com como a los de hola.com, deberíamos escribir esto:
RewriteEngine onRewriteCond %{HTTP_HOST} ^www.hola.com$
RewriteRule ^/?$ "http://hola.com/" [R=301,L]

Efectivamente, se trata de una pequeña variación de la redirección 301 explicada anteriormente.

  • Evitar el listado de ficheros. De esa manera impedimos que alguien pueda acceder al nombre de todos los ficheros que existan dentro de una carpeta determinada. Es un mecanismo de seguridad muy necesario.
Options -IndexesIndexIgnore *
  • Limitar el tamaño máximo de los ficheros. Para evitar que se puedan subir al servidor ficheros muy grandes y se consuma de esa manera el ancho de banda contratado. Es, junto al control de hotlink, el mejor sistema para gestionar el tráfico, ya que también permite definir el tiempo máximo que permitimos que espere el servidor para la ejecución de cualquier proceso:
php_value upload_max_filesize 10M
php_value max_execution_time 200
php_value max_input_time 200

 

 

Cómo crear el fichero .htaccess

El fichero .htaccess no es especial en cuanto a su forma de creación. No se trata más que de un fichero de texto en modo ASCII que, simplemente, no tiene nombre. Al menos tal y como estamos acostumbrados a ver: nombre.extensión

El hecho de que tenga un punto delante indica que se trata de un fichero invisible, que no será visualizado si se genera un listado de ficheros de una carpeta concreta.

Para crearlo bastará con un editor de textos (notepad, gedit…) y guardarlo como htaccess.txtNotepad Una vez hecho esto se puede subir al servidor vía FTP y allí se renombra a .htaccess También existe la posibilidad de crearlo directamente desde el panel del hosting.

Si lo prefieres, también puedes emplear cualquier plantilla de las muchas que hay en la Web para crearlo. No tendrás más seleccionar del formulario las opciones que quieres configurar, darle a aplicar y listo. Entre las plantillas que más me gustan:

  • .htaccess Generator
  • Htaccess generator
  • .htaccessEditor

Y aquí tienes un generador de ficheros htpasswd.

Cómo proteger el fichero .htaccess

Proteger htaccessCreo que ya ha quedado suficientemente clara la potencia e importancia de este fichero. Por eso es fundamental protegerlo bien. Para ello puedes hacer varias cosas:

  • Evitar el acceso externo a .htaccess. Dentro del mismo fichero debes escribir:# protege el archivo htaccess
<files .htaccess>
order allow,
denydeny from all
</files>

No vendría mal que extendieras esta protección al fichero htpasswd

  • Desde el cliente FTP asigna los privilegios 644 o RW-R—R– para evitar que se pueda editar desde fuera del servidor.

 

Consejos de uso

  • Aunque ya lo he mencionado al principio, no abuses de estos ficheros. Si creas un fichero de estos en cada directorio tendrás un servidor muy seguro, sí, pero también muy lento.
  • Organiza la información dentro del .htaccess para que sea fácil de gestionar. Si vas poniendo líneas a lo loco lo más normal es que, pasado un tiempo, no sepas ni lo que has escrito.
  • Acostúmbrate a comentar (con #) todas las líneas que pongas o, al menos, los grupos de directrices. Te será más sencillo entender lo que has escrito dentro de varios meses.
  • La orden de un directorio afecta a todos los subdirectorios que estén por debajo de él. Ten cuidado con lo que haces.

 

 

 

  • Tweet

Publicado en: Software de clase Etiquetado como: administrador del sitio, Apache, servidores web

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.

Barra lateral principal

Buscar

Categorías

Etiquetas

administrador del sitio analítica web Apache arquitectura web bibliometría CMS congresos diseño pensado en el usuario Drupal gestión de proyectos Google http linked data microdatos microformatos MySQL OAI-PMH OJS ontologías opds open access Open Data open publication distribution system open source posicionamiento RDF redes sociales repositorios revistas electrónicas robots.txt rss SEO SEO semántico servidores web sindicación de contenidos software TFG trabajo colaborativo uniform server uniserver URI URL VIAF webmaster web semántica

Archivos

Estadísticas

  • 1.102

Copyright © 2026 · Magazine Pro en Genesis Framework · WordPress · Acceder

En BlogsUGR utilizamos cookies propias con finalidad técnica y para personalizar su experiencia de usuario. Algunos blogs de BlogsUGR pueden utilizar cookies de terceros para fines analíticos.

 

Puede aprender más sobre qué cookies utilizamos o desactivarlas en los .

Tecnologías web para servicios de información
Powered by  GDPR Cookie Compliance
Resumen de privacidad

BlogsUGR utiliza cookies propias para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a BlogsUGR, haces algún comentario o seleccionas el idioma de un blog. Rechazar las cookies propias podría suponer la imposibilidad de acceder como usuario a BlogsUGR.

Algunos blogs de BlogsUGR utilizan cookies de terceros con fines analíticos para recabar estadísticas sobre la actividad del usuario en dicho blog y la actividad general del  mismo.

Cookies estrictamente necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Cookies de terceros

Algunos blogs de BlogsUGR utilizan Google Analytics para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

Dejar esta cookie activa nos permite mejorar nuestra web.

También algunos blogs de BlogsUGR utilizan cookies de twitter.com que se utilizan para la visualización de esta red social en el blog.

Política de cookies

La presente política de cookies tiene por finalidad informarle de manera clara y precisa sobre las cookies que se utilizan en los blogs del servicio BlogsUGR de la Universidad de Granada.

¿Qué son las cookies?

Una cookie es un pequeño fragmento de texto que los sitios web que visita envían al navegador y que permite que el sitio web recuerde información sobre su visita, como su idioma preferido y otras opciones, con el fin de facilitar su próxima visita y hacer que el sitio le resulte más útil. Las cookies desempeñan un papel muy importante y contribuyen a tener una mejor experiencia de navegación para el usuario.

Tipos de cookies

Según quién sea la entidad que gestione el dominio desde dónde se envían las cookies y se traten los datos que se obtengan, se pueden distinguir dos tipos: cookies propias y cookies de terceros.

Existe también una segunda clasificación según el plazo de tiempo que permanecen almacenadas en el navegador del cliente, pudiendo tratarse de cookies de sesión o cookies persistentes.

Por último, existe otra clasificación con cinco tipos de cookies según la finalidad para la que se traten los datos obtenidos: cookies técnicas, cookies de personalización, cookies de análisis, cookies publicitarias y cookies de publicidad comportamental.

Para más información a este respecto puede consultar la Guía sobre el uso de las cookies de la Agencia Española de Protección de Datos.

Cookies utilizadas en la web

A continuación se identifican las cookies que están siendo utilizadas en este portal así como su tipología y función:

Todos los blogs de BlogsUGR utilizan cookies técnicas y propias, necesarias para la personalización de su experiencia de usuario y para el mantenimiento de sesión.

Algunos blogs de BlogsUGR pueden utilizar cookies de Twitter para personalizar la visualización de dicha red social en el blog.

Algunos blogs de BlogsUGR pueden utilizar Google Analytics, un servicio de analítica web desarrollada por Google, que permite la medición y análisis de la navegación en las páginas web. En su navegador podrá observar cookies de este servicio. Según la tipología anterior se trata de cookies  de terceros, de sesión y de análisis.

A través de esta analítica web se obtiene información relativa al número de usuarios que acceden a la web, el número de páginas vistas, la frecuencia y repetición de las visitas, su duración, el navegador utilizado, el operador que presta el servicio, el idioma, el terminal que utiliza y la ciudad a la que está asignada su dirección IP. Información que posibilita un mejor y más apropiado servicio por parte de este portal.

Para garantizar el anonimato, Google convertirá su información en anónima truncando la dirección IP antes de almacenarla, de forma que Google Analytics no se usa para localizar o recabar información personal identificable de los visitantes del sitio. Google solo podrá enviar la información recabada por Google Analytics a terceros cuanto esté legalmente obligado a ello. Con arreglo a las condiciones de prestación del servicio de Google Analytics, Google no asociará su dirección IP a ningún otro dato conservado por Google.