This is an advanced design tutorial. If you are a beginner, we recommend using the cPanel Password Protect Directory icon. That icon can only protect all the files in a folder, not one specific file.
- Create a file named .htpasswd and place it above your root so visitors can't access it.
EXAMPLE: /home/cpanelusername/.htpasswd - Put the username and encrypted password inside the .htpasswd file. EXAMPLE:
john:n5MfEoHOIQkKg
To create the encrypted password you will need to use a utility such as the command-line program htpasswd. More detailed technical information about htpasswd can be found at http://httpd.apache.org/docs/current/programs/htpasswd.html.
It doesn't matter how many files under how many directories you wanted to protect, they can share a common .htpasswd file.
- Place the following code in your .htaccess file, in the same folder where you want to protect the file. (Be sure to replace cpanelusername with your actual cPanel username. Replace test with the path to your file. Replace file.html with your file's actual name.)
EXAMPLE: /home/cpanelusername/public_html/test/.htaccess
<FilesMatch "file.html">
AuthName "Member Only"
AuthType Basic
AuthUserFile /home/cpanelusername/.htpasswd
require valid-user
</FilesMatch>
Results:
/home/cpanelusername/public_html/test/file.html is protected.
/home/cpanelusername/public_html/test/index.html and all others are NOT protected.
You can protect more than one file by using wildcard names. On the FilesMatch line, follow one of these examples:
<FilesMatch "*.html">
<FilesMatch "file.*">
<FilesMatch "*.*">