Одним із стандартних завдань, які можна вирішити за допомогою .htaccess, є обмеження доступу до певного каталогу на сервері. Наприклад, потрібно надати доступ до певного каталогу окремим відвідувачам, надавши їм унікальний логін і пароль.

У каталозі, до якого ми хочемо обмежити доступ за паролем, ми створюємо файл .htaccess з такими директивами:

AuthType Basic

AuthName "Some Name"

AuthUserFile /home/uXXXXX/.htpasswd

require valid-user 

Шлях  /home/uXXXXX/ .htpasswd позначає повний шлях до файлу паролів на диску нашого сервера. Якщо, наприклад, ви розмістите файл .htpasswd (він буде містити паролі) у вашому домашньому каталозі, куди ви потрапите, зайшовши на сервер через FTP, то шлях до цього файлу матиме вигляд  /home/uXXXXX/.htpasswd , де  uXXXXX  — назва ваших віртуальних сайтів (наприклад,  u12345 ).

У директиві AuthUserFile вказуємо абсолютний шлях до файлу з логінами/паролями, який ми створимо трохи пізніше. Якщо ви створюєте файл .htaccess на своєму комп’ютері, а не безпосередньо на сервері за допомогою текстового редактора, зауважте, що .htaccess потрібно передавати через FTP виключно в текстовому режимі (ASCII).

Створіть файл паролів. Файл пароля має містити такі рядки, як login: password . Пароль має бути зашифрований за допомогою алгоритму MD5. Один зі способів створення такого файлу — скористатися програмою, що входить до складу  Apache  — htpasswd (на нашому сервері він знаходиться в  каталозі /usr/local/bin/  , повний шлях —  /usr/local/bin/htpasswd ).

Давайте розглянемо, як створити файл паролів в оболонці Unix безпосередньо на сервері. Давайте перейдемо до оболонки та виконаємо наступні команди:

  • htpasswd -mbc .htpasswd user1 sNQ7j9oR2w
  • створюємо новий файл .htpasswd, до якого додаємо запис для користувача user1 із паролем, указаним у командному рядку. Обов’язково замініть sNQ7j9oR2w будь-яким власним паролем – цей пароль наведено тут як приклад.
  • htpasswd .htpasswd user2

Додайте користувача2 до наявного файлу .htpasswd і введіть пароль вручну у відповідь на відповідний запит програми.

Якщо ви використовуєте Windows і не бажаєте використовувати оболонку unix для створення паролів, ви можете завантажити версію програми htpasswd для Windows тут і створити файл із паролями на своєму комп’ютері, а потім завантажити його на сервер. Якщо у вас уже встановлена ​​версія Apache для Windows, файл htpasswd.exe можна знайти в каталозі Program  Files\Apache Group\Apache\bin\  .

Отже, отримайте htpasswd.exe і використовуйте його для створення паролів, як це:

htpasswd.exe -mc .htpasswd user1

створіть новий файл паролів htpasswd.exe, пароль і його підтвердження будуть запрошені в інтерактивному режимі

htpasswd.exe -m .htpasswd user2

додайте користувача user2 до існуючого файлу паролів htpasswd.exe, запитуючи пароль в інтерактивному режимі.

Після того, як усі логіни створені, файл необхідно завантажити на сервер.