Generate htaccess password (htpasswd) from the command line


When a website is in development, it’s a good idea to password protect the root directory from public access:

  1. It prevents unauthorized users from accessing the site
  2. It prevents it from being indexed in search engines
  3. It prevents other bots (spammers) from attacking your development site

There are plenty of online tools to generate the htpasswd file, but if you like to work from the command line, here’s a really easy way to do it.

If you’re on a Linux server with Apache, you can use the htpasswd command.

If you don’t current have an .htpasswd, use the “-c” option to create the file with the first user. It will prompt you for a password and encrypt it for you.

htpasswd -c /var/www/ user1

If you already have the .htpasswd file and would like to append a new user, repeat the command with the “-c”

htpasswd /var/www/ user2

.htpasswd is the standard file name that contains the authentication credentials, but you can actually call it whatever you want as long as you reference it in the .htaccess file:

AuthName "Restricted Area"
AuthType Basic
AuthUserFile /var/www/
AuthGroupFile /dev/null
require valid-user

The AuthUserFile location doesn’t need to be in the same folder as your virtualhost. It can be anywhere on your server as long as you use the full path to it. You may want a shared AuthUserFile if you have multiple websites on the same server and want to administer the logins from one file.

5 replies on “Generate htaccess password (htpasswd) from the command line”

I just could not leave your website before suggesting that I really enjoyed the standard info an individual supply on your visitors? Is gonna be back regularly to check out new posts

Great post. I was checking continuously this weblolg and I am inspired!
Very useful info specifically the last phase 🙂 I take care of
such info a lot. I used to be seeking this certain info for a very lengthy
time. Thank you and good luck.

Hello !
Thanks for the post,
Anyway a slightly annoying problem here : when i type the command, i’ve an answer saying that that command does not exist.
What can i do ? ?
thanks for .. any help !!

what if I have /var/www/htdocs/folder1/folder2 and need to password protect both folder1 and folder2 for two different users?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.