4xx · Errores del cliente
Error 403 Forbidden: qué significa y cómo solucionarlo
El error 403 Forbidden significa que el servidor ha entendido la petición pero se niega a servirla: no tienes permiso para ver ese recurso. En una web propia, las causas más comunes son permisos de ficheros incorrectos, un directorio sin index.html, una regla de nginx o .htaccess que bloquea el acceso, o un firewall (WAF) como el de Cloudflare.
Qué significa el código 403
A diferencia del 401, iniciar sesión no lo arregla: el servidor ya sabe quién eres (o no le importa) y ha decidido que no puedes entrar. Puede ser una decisión correcta (zona de administración) o un error de configuración.
En Linux, el caso más típico es de permisos: nginx corre como el usuario www-data y no puede leer el fichero o atravesar alguna carpeta de la ruta. Basta con que una carpeta intermedia no tenga permiso de ejecución (x) para que todo lo que hay dentro dé 403.
Si la página de error tiene el logo de Cloudflare, el bloqueo no viene de tu servidor: lo ha hecho una regla de seguridad del WAF, el Bot Fight Mode o un bloqueo por país o IP.
Causas habituales del error 403
- Permisos de ficheros o carpetas: el usuario del servidor web no puede leerlos.
- Carpeta sin index.html (o index.php) y con el listado de directorios desactivado.
- Reglas deny, allow o auth en nginx, o Require all denied / Deny from all en Apache.
- Un .htaccess con reglas de seguridad demasiado estrictas (plugins de seguridad de WordPress).
- WAF o protección anti-bots (Cloudflare, ModSecurity) que bloquea tu IP, tu país o tu User-Agent.
- SELinux en CentOS/RHEL/Rocky: los ficheros no tienen el contexto httpd_sys_content_t.
- Enlace directo a una imagen bloqueado por protección anti-hotlinking.
Si eres visitante de la web
- Comprueba que la URL es correcta; algunas webs devuelven 403 en vez de 404 para no revelar qué existe.
- Si usas VPN, desconéctala: muchas webs bloquean rangos de IP de VPN y centros de datos.
- Borra cookies y caché, o prueba con otro navegador.
Cómo solucionar el error 403
- Revisa el log de errores: nginx dice exactamente por qué (permission denied, directory index forbidden, access forbidden by rule).
- Corrige los permisos: carpetas 755 y ficheros 644, propiedad del usuario correcto.
- Comprueba que existe el fichero índice y que la directiva index lo incluye.
- En SELinux, restaura el contexto con restorecon.
- Si es Cloudflare, mira en Security → Events qué regla ha bloqueado la petición.
Configuración y comandos
Encontrar la causa en el log de nginx
sudo tail -n 50 /var/log/nginx/error.log
# open() "/var/www/web/index.html" failed (13: Permission denied)
# directory index of "/var/www/web/" is forbiddenCorregir permisos
sudo chown -R www-data:www-data /var/www/web
sudo find /var/www/web -type d -exec chmod 755 {} \;
sudo find /var/www/web -type f -exec chmod 644 {} \;
# ver los permisos de cada carpeta de la ruta
namei -l /var/www/web/index.htmlSELinux (RHEL, Rocky, Alma)
sudo restorecon -Rv /var/www/web
ls -Z /var/www/webnginx: zona solo para tu IP
location /admin/ {
allow 203.0.113.10;
deny all; # el resto recibe 403
}Ejemplo de respuesta
HTTP/1.1 403 Forbidden
Server: nginx
Content-Type: text/html
<html><head><title>403 Forbidden</title></head>
<body><center><h1>403 Forbidden</h1></center><hr><center>nginx</center></body></html>Herramientas para comprobarlo
Preguntas frecuentes
¿Qué significa error 403 Forbidden?
Que el servidor ha recibido la petición pero se niega a servirla porque no tienes permiso. Puede ser intencionado (zona privada) o un fallo de permisos o de configuración.
¿Cómo soluciono un 403 en nginx?
Mira /var/log/nginx/error.log. Si dice Permission denied, corrige propietario y permisos (755 en carpetas, 644 en ficheros). Si dice directory index is forbidden, falta el index.html o la directiva index.
¿El 403 afecta al SEO?
Si Googlebot recibe 403 en páginas públicas, deja de indexarlas. Revisa que el firewall o Cloudflare no bloqueen a los rastreadores de Google.
¿403 o 404 para ocultar una página?
Si no quieres revelar que el recurso existe, 404 es más discreto. GitHub, por ejemplo, devuelve 404 en repositorios privados.
Códigos relacionados
- 401 UnauthorizedFalta autenticación o las credenciales no son válidas. No confundir con 403.
- 404 Not FoundEl recurso solicitado no existe en el servidor. El error más conocido de internet.
- 451 Unavailable For Legal ReasonsEl contenido no está disponible por motivos legales (censura, orden judicial, RGPD).
- 429 Too Many RequestsHas superado el límite de peticiones (rate limiting). Espera antes de reintentar.