Seguridad y SSL

Excluir directorio o fichero al proteger un directorio con usuario y contraseña

Revisado el 3 min de lectura accesos contrasenas htaccess

cPanel dispone de la opción Privacidad del directorio que permite proteger un directorio con usuario y contraseña.

La utilidad de esta función va desde proteger el acceso a una web en desarrollo hasta, en el caso de WordPress, añadir una capa adicional de protección al directorio wp-admin.

Pero en ocasiones podemos necesitar excluir un fichero o directorio de esta protección, siguiendo el ejemplo de wp-admin, hay plugins y plantillas que realizan llamadas a admin-ajax.php y si protegemos el acceso a wp-admin estas llamadas pueden fallar con una petición de autenticación adicional.

Para ello podemos añadir una regla en el .htaccess que excluya solo el fichero exacto que deba ser público. En Apache 2.4 usa la sintaxis moderna Require y coloca la excepción en el .htaccess del directorio protegido, después de comprobar que ese endpoint aplica su propia autorización y validación:

<Files "admin-ajax.php">
    Require all granted
</Files>

En este ejemplo excluimos únicamente el fichero exacto admin-ajax.php de la autenticación básica. La excepción no evita que WordPress deba validar nonces, permisos y sesión para cada acción sensible.

No sustituyas el fichero por un patrón amplio ni excluyas directorios administrativos completos como wp-admin: dejarías sin esa capa de protección todos sus endpoints actuales y futuros. Si otro recurso necesita acceso público, crea una excepción independiente para su nombre exacto, prueba solo esa URL y confirma que el resto del directorio continúa solicitando autenticación.

Comprueba la excepción sin abrir el resto

Guarda una copia del .htaccess fuera del directorio público antes de editarlo. Respeta las reglas de la aplicación y revisa si ya hay otros bloques Require, Files o FilesMatch que puedan combinarse o sustituirse.

Desde una sesión sin autenticar, prueba la URL exceptuada y otra del mismo directorio que deba seguir protegida. Una respuesta pública del endpoint no implica que sus acciones sensibles deban ejecutarse sin autorización de la aplicación.

Si aparece un error 500, restaura la versión anterior y revisa el registro de errores. Si necesitas abrir un subdirectorio entero, identifica antes sus archivos y accesos: el ejemplo de un fichero no debe ampliarse cambiándolo por un comodín general.

También te puede ayudar

¿Algo no cuadra o ha cambiado? Cuéntanoslo y lo revisamos.