Introducción

Buenas, en este post explicaremos para que sirve el fichero .htaccess y haremos un pequeño ejercicio.

¿Qué es?

Un fichero .htaccess (hypertext access), también conocido como archivo de configuración distribuida, es un fichero especial, popularizado por el Servidor HTTP Apache que nos permite definir diferentes directivas de configuración para cada directorio (con sus respectivos subdirectorios) sin necesidad de editar el archivo de configuración principal de Apache.

Para permitir el uso de los ficheros .htaccess o restringir las directivas que se pueden aplicar usamos la directiva AllowOverride, que puede ir acompañada de una o varias opciones: All, AuthConfig, FileInfo, Indexes, Limit, …

Alta en hosting gratuito

Nos vamos a dar de alta en un proveedor de hosting gratuito y vamos a configurar el fichero .htaccess.

Hemos escogido un dominio gratuito de 000webhost, obviamente no vamos a explicar como darnos de alta, ya que es un proceso bastante sencillo. Al acceder a la administración de subida de archivos tenemos que entrar en la carpeta public_html:

1

Aquí ya viene el listado de ficheros por defecto activo en el .htaccess del directorio principal, el cuál afecta a todos sus subdirectorios, por ello lo primero que tenemos que hacer es deshabilitar la opción Indexes del principal:

2

Y crearemos otro directorio llamado nas con otro .htaccess:

3

En el cuál le añadiremos lo siguiente:

Options +Indexes

Y como podemos comprobar nos mostrará los archivos creados:

4

Redirección permanente

Para hacer una redirección a google, tendremos que modificar el .htaccess del directorio principal añadiendo la siguiente línea:

Redirect "/google" "https://www.google.es"

Y si comprobamos desde nuestra máquina:

curl https://alejandro-ejercicio6.000webhostapp.com/google

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="https://www.google.es">here</a>.</p>
</body></html>

Autentificación

Vamos a hacer que cuando entremos en http://host.dominio/prohibido nos pida autentificación:

Creamos el directorio prohibido:

5

Le creamos algo de contenido:

6

Generamos en nuestra máquina un fichero digest:

htdigest -c digest.txt dominio ale
Adding password for ale in realm dominio.
New password: 
Re-type new password:

Copiamos su contenido a un nuevo fichero en la carpeta raíz del servidor (para que no sea accesible fácilmente):

7

Y para que obtenga el fichero y haga la autenticación, en otro fichero nuevo .htaccess, dentro del directorio prohibido añadimos lo siguiente:

AuthType Digest
AuthName "dominio" 
AuthUserFile "/storage/ssd5/935/15297935/digest.txt" 
Require valid-user

La ubicación la hemos tenido que buscar en la página de 000web, en los detalles de nuestro sitio:

8

No hará falta añadir la habilitación del módulo digest porque ya está activa.

Comprobación

9

Y si ponemos la contraseña correctamente:

10