---
title: "Cómo restringir el acceso a un sitio web mediante .htaccess"
description: "El archivo .htaccess es una herramienta poderosa para controlar el acceso a un sitio web. A través de él, es posible restringir el acceso a archivos, directorios o incluso bloquear usuarios por direcc..."
url: https://wpdirecto.com/como-restringir-el-acceso-a-un-sitio-web-mediante-htaccess/
date: 2025-03-10
modified: 2025-03-09
author: "David Carrero Fernández-Baillo"
image: https://wpdirecto.com/wp-content/uploads/2017/05/snippets-htaccess.jpg
categories: ["Actualidad"]
tags: ["htaccess", "seguridad"]
type: post
lang: es
---

# Cómo restringir el acceso a un sitio web mediante .htaccess

El archivo **.htaccess** es una herramienta poderosa para controlar el acceso a un sitio web. A través de él, es posible **restringir el acceso a archivos, directorios o incluso bloquear usuarios por dirección IP**. En este artículo se explican diversas formas de proteger un sitio web mediante este archivo de configuración en servidores Apache.

---

### **Cómo crear o editar un archivo .htaccess**

Antes de aplicar restricciones, es necesario asegurarse de que el [archivo **.htaccess**](https://wpdirecto.com/tag/htaccess/) exista en el servidor. Si no está presente, se puede crear manualmente o editarlo siguiendo estos métodos:

🔹 **Vía FTP**: Acceder al servidor mediante un cliente FTP, como FileZilla o Transmit, y editar el archivo dentro del directorio raíz del sitio.
🔹 **Vía SSH**: Para usuarios con acceso SSH, se puede usar un editor de texto como **nano** o **vim** para modificar el archivo directamente desde la terminal.

Si el archivo ya existe, simplemente se deben agregar las reglas necesarias para aplicar las restricciones de acceso.

---

### **Restringir el acceso a un sitio web completo**

Si se desea **bloquear completamente el acceso al sitio**, se puede utilizar la siguiente configuración en **.htaccess**:

```
Require all denied
```

Cualquier usuario que intente acceder al sitio verá un **error 403 – Prohibido**. Esta configuración es útil en situaciones donde se necesita restringir temporalmente el acceso, por ejemplo, durante tareas de mantenimiento.

---

### **Restringir el acceso a archivos específicos**

Si se quiere **bloquear el acceso a ciertos tipos de archivos**, como archivos de configuración sensibles, se puede utilizar el siguiente código:

```
<FilesMatch "\.(inc|config|bak|log)$">
  Require all denied
</FilesMatch>
```

En este caso, cualquier archivo con extensiones **.inc, .config, .bak o .log** será inaccesible para los visitantes.

#### **Restringir el acceso a archivos ocultos**

En sistemas **UNIX y Linux**, los archivos cuyo nombre comienza con un **«.»** (punto) se consideran **archivos ocultos**. Para evitar que los usuarios accedan a ellos, se puede agregar esta regla en el **.htaccess**:

```
<FilesMatch "^\.">
  Require all denied
</FilesMatch>
```

Esta configuración impide que cualquier archivo oculto sea accesible desde un navegador.

---

### **Restringir el acceso a directorios específicos**

Si se quiere **negar el acceso a un directorio en particular**, como una carpeta llamada **«privado»**, se puede utilizar la siguiente regla en **.htaccess**:

```
RewriteEngine On
RewriteRule (^|/)privado(/|$) - [F]
```

Esto genera un **error 403** cuando un usuario intenta acceder a la carpeta **privado**, sin importar en qué parte del sitio se encuentre.

#### **Evitar que los archivos de un directorio sean listados**

Si un directorio no contiene un archivo **index.html** o **index.php**, el servidor puede **mostrar automáticamente un listado de los archivos contenidos en él**. Para evitar esto y mejorar la seguridad, se puede agregar la siguiente línea en **.htaccess**:

```
Options -Indexes
```

Con esta configuración, cualquier usuario que intente ver el contenido del directorio recibirá un **error 403 – Prohibido** en lugar de la lista de archivos.

---

### **Bloquear el acceso en horarios específicos**

Si se desea **denegar el acceso a un directorio en ciertos horarios del día**, se puede utilizar la siguiente regla:

```
RewriteEngine On
RewriteCond %{TIME_HOUR} ^16$
RewriteRule ^.*$ - [F,L]
```

En este caso, si alguien intenta acceder al directorio entre **las 16:00 y las 16:59**, el servidor devolverá un **error 500 – Error interno del servidor**.

Si se necesita bloquear el acceso en **varios horarios**, se puede modificar la regla de esta manera:

```
RewriteEngine On
RewriteCond %{TIME_HOUR} ^08|12|16|22$
RewriteRule ^.*$ - [F,L]
```

Esto restringirá el acceso durante las **08:00, 12:00, 16:00 y 22:00 horas**.

---

### **Restringir el acceso por dirección IP**

Una de las formas más efectivas de **proteger un sitio web contra accesos no autorizados** es mediante el bloqueo de direcciones IP específicas.

#### **Bloquear una IP específica**

```
<RequireAll>
  Require all granted
  Require not ip 192.168.1.100
</RequireAll>
```

Esto evitará que la dirección **192.168.1.100** acceda al sitio.

#### **Bloquear un rango de direcciones IP**

Si se desea **bloquear un rango completo de IPs**, se puede usar esta regla:

```
<RequireAll>
  Require all granted
  Require not ip 192.168.1.
</RequireAll>
```

Esto **bloqueará todas las direcciones desde 192.168.1.0 hasta 192.168.1.255**.

#### **Permitir el acceso solo a una IP específica**

Si se quiere que **solo una IP tenga acceso al sitio**, mientras se bloquea a todos los demás usuarios, se puede utilizar la siguiente regla:

```
<RequireAny>
  Require all denied
  Require ip 90.161.226.107
</RequireAny>
```

Esto permitirá el acceso únicamente a la IP **90.161.226.107**, bloqueando a cualquier otro visitante.

#### **Bloquear el acceso desde un dominio específico**

Si se desea **negar el acceso a los visitantes que provienen de un dominio en particular**, como **example.com**, se puede agregar esta regla en **.htaccess**:

```
<RequireAll>
  Require all granted
  Require not host example.com
</RequireAll>
```

Esto impedirá que cualquier usuario con un host que termine en **example.com** acceda al sitio.

---

### **Conclusión**

El archivo **.htaccess** es una herramienta clave para **controlar el acceso a un sitio web**, permitiendo **proteger directorios, restringir IPs y evitar listados de archivos**. Implementar estas reglas ayuda a **mejorar la seguridad del sitio y prevenir accesos no autorizados**.

Antes de realizar cambios en **.htaccess**, se recomienda **hacer una copia de seguridad del archivo original**, ya que errores en la configuración pueden hacer que el sitio sea inaccesible.

Para administradores web y desarrolladores, dominar el uso de **.htaccess** es esencial para **fortalecer la seguridad y personalizar el comportamiento del servidor Apache**.
