En ocasiones tengo que poner online lo que voy desarrollando para que el resto del equipo o el cliente puedan ir siguiendo los avances pero no tiene que ser algo público, lógicamente, y para esto preparo un acceso con usuario y contraseña mediante el archivo htaccess al proyecto que tengo que desarrollar.
Todos los hosting tienen la opción de crear subdominios que podrían ser algo como dev.midominio.com o proyecto.midominio.com , este subdominio tiene su propia carpeta y en ella vamos a alojar el proyecto.
Otra posibilidad si desarrollamos varios proyectos a la vez es hacer carpetas dentro de ese subdominio a las que accederemos a través de algo como proyectos.midominio.com/proyecto1 o dev.midominio.com/tiendadeprueba por ejemplo.
Entendido esto pasamos a preparar el acceso con usuario y contraseña mediante el archivo htaccess.
Primero en la carpeta raíz del proyecto, la que contiene todo, buscamos el archivo .htaccess o si no existe lo creamos y dentro metemos estas 4 líneas de código
AuthType Basic AuthName "Zona Protegida con Contraseña" AuthUserFile /ruta/completa/hasta/nuestro/archivo/.htpasswd Require valid-user
La primera declara que estamos creando un acceso por identificación.
La segunda es el titulo que aparecerá en el recuadro que pedirá el usuario y la contraseña.
En la tercera línea (AuthUserFile /…) vemos que se hace referencia a una ruta y a un archivo .htpasswd que es donde vamos a tener la lista de los usuarios y contraseñas que tendrán acceso.
Para saber la ruta a nuestro archivo .htpasswd podemos utilizar las siguientes dos líneas de código
<?php $dir = dirname(__FILE__); echo "<p>Esta es la ruta a .htpasswd : " . $dir . "/.htpasswd" . "</p>"; ?>
Una vez tenemos la ruta que pondremos en AuthUserFile necesitamos usuarios y claves, estás últimas irán encriptadas, en el archivo .htpasswd
Podemos generar las contraseñas nosotros mismos con este código php:
<?php // Contraseña a encriptar $clearTextPassword = 'PatatasConChorizo'; // Encripta la contraseña $password = crypt($clearTextPassword, base64_encode($clearTextPassword)); // Ver contraseña echo $password; ?>
También se puede utilizar un generador online para crear la contraseña como:
http://www.htaccesstools.com/htpasswd-generator/
Una vez tenemos usuarios y contraseñas los escribimos dentro del archivo .htpasswd en formato clave:valor y cada par de usuario:contraseña que vayamos a añadir estará en una línea distinta. Para entenderlo mejor un ejemplo:
usuario1:p4t4t4sC0#xor1z0 cliente:5uW3bAk1 designer:m1r4L05C01Or35
Con esto listo cuando se acceda a la url o el subdominio aparecerá una ventana pidiendo usuario y contraseña para poder entrar.