Hay ocasiones en las que queremos que ninguna persona o robot (google...) acceda a una página, dominio o subdominio. Donde el motivo más común suele ser porque se trata de una página o sitio de desarrollo y no nos interesa que se indexe el contenido, o que personas ajenas al equipo de desarrollo accedan.
Para llevar a cabo este cometido, vamos a configurar el servidor de Apache mediante el htaccess de nuestro sitio principal. La idea es denegar todas las peticiones al sitio que queremos mantener en privado y permitir el acceso a este mediante autorización. Vamos a ver un ejemplo donde tenemos el subdominio desarrollo del dominio imaginanet.com
SetEnvIfNoCase Host ^(www.)imaginanet.com$ imaginanet SetEnvIfNoCase Host ^(desarrollo.)imaginanet.com$ desarrollo AuthType basic AuthName "Desarrollo" AuthUserFile /home/imaginanet/.htpasswd Order deny,allow Deny from all Allow from env=imaginanet Require valid-user Satisfy any
En las primeras líneas estamos inicializando variables de entorno para poder realizar las reglas. En este caso la regla imaginanet para nuestro dominio principal y la regla desarrollo para el subdominio de desarrollo.
Lo siguiente es solicitar autorización básica pidiendo el usuario y contraseña que tenemos almacenados en el archivo .htpasswd. Este archivo conviene almacenarlo fuera de la carpeta pública, y se debe poner la ruta absoluta. El contenido del archivo tiene que ser un usuario y contraseña, o más. Y la contraseña debe ir encriptada. Podemos encontrar conversores online para hacerlo, o si disponemos de acceso ssh al servidor entonces podemos ejecutar el siguiente comando:
htpasswd -nb usuario contraseña
Este comando nos devuelve lo que debemos incluir en el fichero .htpasswd
Finalmente denegamos todas las peticiones y requerimos validación, con la excepción de imaginanet que permitimos su acceso sin autorización.
Comentarios