Puede que utilizando .htpasswd te devuelva el siguiente error:
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there was an error in a CGI script.
Seguramente es porque no esté encontrando el fichero .htaccess no está encontrando a .htpasswd… quizás hayamos indicado mal el «path» la ubicación del archivo, para asegurarnos de ello, creamos un archivo .php con la siguiente función php:
echo dirname(__FILE__);
Accedemos a ese archivo y nos pintará en pantalla la ruta exacta hasta donde se ubica el archivo php, en mi caso:
/Applications/XAMPP/xamppfiles/htdocs/testbasicAuth/protegido
Esta es la ruta que deberíamos añadir a nuestro .htaccess
AuthType Basic AuthName "Zona protegida" AuthUserFile /Applications/XAMPP/xamppfiles/htdocs/testbasicAuth/protegido/.htpasswd Require valid-user
Y ahora ya debería de funcionar 🙂