.htaccess

De Seobility Wiki
Saltar a: navegación, buscar

¿Qué es .htaccess y para qué sirve?

.htaccess
Imagen: .htaccess - Autor: Seobility - Licencia: CC BY-SA 4.0

El fichero .htaccess es un archivo muy importante cuya función es dar instrucciones al servidor.

Su nombre proviene de la conjunción de los términos “hipertexto y acceso”, y describe su función original de controlar el acceso de las usuarias y usuarios a diferentes archivos de texto de un sitio web.

En un principio, su rol principal consistía en limitar el acceso a secciones específicas de un portal. Así pues, programando ciertas instrucciones en el archivo .htaccess, un/una administrador/a del sistema podría configurar el acceso a una página o directorio con una contraseña.

Hoy en día, la funcionalidad del .htaccess se ha ampliado a otros usos como se discutirá con precisión a lo largo de este artículo.

¿En qué se diferencia .htaccess de httpd.conf?

Tanto el .htaccess como el httpd.conf son archivos que se usan para modificar la configuración del servidor o para darle algunas instrucciones adicionales.

Sin embargo, httpd.conf es el principal archivo de configuración o archivo maestro, y solo puede aparecer una vez. En cambio, el fichero .htaccess puede figurar en más de una instancia y en múltiples directorios específicos.

Por otra parte, las instrucciones incluidas en httpd.conf se leen una sola vez en el servidor, mientras que las que contiene el archivo .htaccess se leerán cada vez que se cargue una página, ya sea en el directorio donde se encuentra o en cualquiera de sus subdirectorios.

¿Cómo crear un archivo .htaccess?

Para crear un nuevo archivo .htaccess basta con abrir un documento nuevo utilizando un editor de texto sin formato (un programa para crear archivos de texto plano) como Notepad++, Brackets o TextMate.

Como se mencionó anteriormente, un archivo .htaccess esencialmente brinda instrucciones al servidor, por lo que su contenido variará dependiendo de lo que se busque conseguir para cada página web en concreto.

De este modo, una vez creadas las instrucciones, hay que guardar los cambios siguiendo estos pasos:

  • En el editor de texto, desplegamos el menú de Archivo y clicamos en “guardar como”, lo que abrirá un cuadro de diálogo.
  • Aquí se debe escribir .htaccess como el nombre del archivo.
  • Debajo del nombre, el cuadro de diálogo incluye la opción de ‘‘Tipo de archivo’’ o ‘‘Guardar como tipo’’. Seleccionamos la opción ‘‘todos los archivos’’.
  • Es importante asegurarse de que el documento se guarde sin ninguna extensión, ya que algunos editores añaden automáticamente el .txt como predeterminada, si este es el caso, eliminamos esta extensión del nombre.
  • Por último, el archivo debe estar en formato ASCII, no en UTF-8.

Una vez hayamos creado el archivo, los subimos al directorio raíz, ya sea usando un sistema de administración de archivos como cPanel o mediante FTP.

No obstante, los archivos .htaccess también se pueden cargar en otras partes de un sitio web, es decir que, puede haber varios documentos de este tipo en directorios o subdirectorios diferentes al root (raíz) o public_html.

En cualquier caso y antes de subirlo, es fundamental recordar que este tipo de archivos anulan otras instrucciones que puedan estar incluidas en directorios secundarios o inferiores.

¿Para qué se usa el archivo .htaccess?

El .htaccess se puede implementar para desarrollar una gran variedad de funciones que dependen de las directivas específicas que contenga. Algunos de sus usos más comunes son:

Reescribir URLs dinámicas a URLs estáticas

Las URL estáticas generadas por PHP son más recomendables para el SEO y los resultados en los rankings de Google y otros buscadores. Para cambiar una URL dinámica a una estática, se puede insertar en el archivo .htaccess el código que se muestra a continuación:

RewriteEngine On
RewriteRule (.*)_(.*).html$ /ejemplo.php?url_isbn=$1 [qsappend,L]

En este ejemplo, /ejemplo.php es la URL dinámica que se reescribirá en /ejemplo-1.html, siendo que en este caso, 1 es una referencia inversa.

Configurar la protección con contraseña

Para aquellos sitios que deban restringir el acceso de las usuarias y usuarios a ciertas páginas o directorios, solo es necesario configurar dos archivos:

un fichero “.htpasswd” que almacena nombres de usuarios/as y sus contraseñas guardadas fuera del directorio público para que no tenga acceso público.

user1:contraseña1
user2:contraseña2
user3:contraseña3

y además un archivo .htaccess con las siguientes instrucciones:

AuthType Basic
AuthName "restricted area"
AuthUserFile /<absolute path to password file>/.htpasswd
AuthPGAuthoritative Off
require user User1 User2 User3

Crear redirecciones

En otro orden, para redirigir automáticamente a los/as visitantes desde una página antigua a una página nueva sin perjudicar el SEO, se puede agregar el siguiente código:

Redirect 301 /pagina-vieja/file.html http://www.ejemplo.com/pagina-nuevah/file.html

Mientras que para redirigir a los/as visitantes de un dominio antiguo a uno nuevo, se puede utilizar:

RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ http://nuevo-dominio.tld/$1 [L,R=301]]

Bloquear direcciones IP específicas

En algunos casos, puede ser necesario incluir ciertas direcciones IP en la lista negra para que no puedan acceder a un sitio web. En dichas circunstancias, se deben seguir las siguientes instrucciones:

order allow,deny
deny from 111.1.1.1
allow from all

En este ejemplo 111.1.1.1 es la dirección IP a bloquear. Se pueden bloquear direcciones IP adicionales agregándolas justo encima de ‘‘permitir para todos’’ como se muestra en el siguiente ejemplo:

order allow,deny
deny from 111.1.1.1
deny from 222.2.2.2
allow from all

¿Cuándo usar un archivo .htaccess?

Puesto que el .htaccess es uno de los archivos principales de un sitio web, su uso incorrecto puede causar daños significativos para cualquier portal. De hecho, esta es una de las razones por las que, normalmente, son documentos que permanecen ocultos y arrojan mensajes de advertencia cuando un o una usuario/a intenta modificarlos.

Por lo tanto, es primordial que solo sea editado y creado por las y los profesionales en la configuración de servidores o las y los webmasters.

Ampliar conocimientos

Contenidos relacionados