Часом виникає необхідність обмежити доступ до сторінок або якимось файлів вашого сайту для певних груп користувачів. Програмне забезпечення веб-сервера Apache має вбудовані засоби для вирішення цього завдання. Ознайомтеся з ними.
Інструкція
- При кожному запиті на будь-яку сторінку сайту, сервер перевіряє наявність у папці, де вона зберігається, службового файлу з назвою «. Htaccess». Якщо він є, то сервер, при обробці запиту, буде слідувати директивам з цього файлу. У нього можна помістити і директиви обмеження доступу до сторінок або іншими документами сайту з якихось ознаках. Зробити це можна, створивши такий файл у звичайному текстовому редакторі і завантаживши в потрібну вам папку сервера. Оскільки ці файли є службовими, то з браузера веб-відвідувача вони не доступні.
- Щоб вирішити проблему доступу радикально помістіть в файл htaccess ці директиви:
Order Deny, Allow
Deny from all
Отримавши такі інструкції, веб-сервер закриє доступ до абсолютно всіх файлів і папок у цій та всіх вкладених в неї директоріях для всіх без винятку відвідувачів. - Можна додати в тотальну заборону виключення для користувачів, які мають певний IP-адреса:
Order Deny, Allow
Deny from all
Allow from 77.84.20.18, 77.84.21.2
У цьому прикладі користувачі, чий IP 77.84.20.18 або 77.84.21.2, не помітять наявності будь-яких обмежень, а всі інші допущені до сторінок не будуть. Якщо вам потрібен саме такий порядок доступу — перерахуйте список дозволених IP-адрес через кому. - Якщо потрібно навпаки створити «чорний список» з небажаних IP-адрес, то директиви слід змінити таким чином:
Order Allow, Deny
Allow from all
Deny from 77.84.20.18, 77.84.21.2
Доступ буде закрито тільки для відвідувачів, які мають IP 77.84.20.18 і 77.84.21.2, а інші будуть пропускатися безперешкодно. І в цьому варіанті список заборонених IP-адрес треба перелічити через кому. - Якщо потрібно обмежити доступ не до всіх документів у папці, а лише до окремого файлу, то директиви повинні виглядати так:
<Files «hidden.html»>
Order Deny, Allow
Deny from all
Allow from 77.84.20.18
</ Files>
Тут у першому рядку вказано файл, доступ до якого має бути обмежений (hidden.html), а в четвертому рядку записано виключення з забороняє правила — IP користувачів, яким доступ до файлу дозволений. - Аналогічно можна обмежити доступ до групи файлів по масці їхніх імен:
<Files «.(wma)$»>
Order Deny, Allow
Deny from all
Allow from 77.84.20.18
</ Files>
Тут у першому рядку вказана маска імен файлів з обмеженим доступом — заборона буде поширюватися на всі файли з розширенням «wma». У четвертому рядку, як і в попередньому прикладі — IP користувачів, на яких обмеження не поширюється. - Є можливість обмежити доступ до сторінок за типом браузера — таким способом можна відсіювати, наприклад, небажаних пошукових роботів:
SetEnvIfNoCase user-Agent ^ Microsoft.URL [NC, OR]
SetEnvIfNoCase user-Agent ^ Offline.Explorer [NC, OR]
SetEnvIfNoCase user-Agent ^ [Ww] eb [Bb] andit [NC, OR]
<limit get=»" post=»" head=»">
Order Allow, Deny
Allow from all
Deny from env = bad_bot
</ Limit>
Тут у перших трьох рядках перераховані кілька небажаних типів браузерів (по одному на кожний рядок). Звичайно, при використанні такої конструкції вам потрібно замінити їх не ті, які докучають саме вашому сайту.