Як запароліть директорію або сайт на сервері apache

Як запароліть директорію або сайт на сервері apache

Завдання: запароліть директорію або весь сайт і як встановити пароль на папки (або весь сайт) за допомогою Apache.

маємо отримати при зверненні до сервера:

Як запароліть директорію або сайт на сервері apache

1 - Створюємо файл паролів шлях до якого вказується як параметр до директиви AuthUserFile. Паролі в цьому файлі повинні бути шифрованими, чого можна досягти за допомогою програми htpasswd, що входить в поставку Apache.

Якщо Ви набрали в unix shell команду htpasswd і система повідомила, що такого файлу немає, з'ясуйте у свого хостинг-провайдера де ж знаходиться htpasswd.

допустимо, htpasswd у нас доступний:

-c Create a new file.
Тут ми не будемо розглядати всі параметри цієї команди, але Ви можете самі прочитати подробиці, запустивши htpasswd в unix shell або ознайомившись з відповідною сторінкою документації по Apache.


Отже, спочатку у нас ще немає файлу з паролями і нам потрібно його створити.

Після натискання Enter, буде запропоновано вести пароль (за допомогою даної команди можна змінити вже присвоєний пароль). Після виконання даної операції htpasswd створить файл .htpasswd, в якому виявиться користувач user1 і його пароль в зашифрованому вигляді:

А тепер ми хочемо додати ще одного користувача. Так як файл з паролями у нас вже є, ми просто не будемо використовувати ключ '-c':

Можна зробити те ж саме на Локаль за допомогою програми htpasswd, що входить в поставку Apache - якщо немає -Беріть тут і запускайте її з командного рядка (cmd)

далі все те ж саме (див. вище)

Як запароліть директорію або сайт на сервері apache

2 - В директорії яку хочемо запароліть створюємо файл .htaccess. Якщо треба запароліть весь сайт, тоді файл .htaccess поміщаємо в корінь сайту.

У .htaccess прописуємо наступні рядки:

Де AuthName "Enter password" - ваше повідомлення

"/usr/local/www/data/.htpasswd" шлях до файлу з паролями.

Зазвичай на живому хостингу такий (може конесно відрізнятися - але папка з файлом паролів повинна бути задана вірно):