Як закрити доступ до сторінок

Як закрити доступ до сторінок

Часом виникає необхідність обмежити доступ до сторінок або якимось файлів вашого сайту для певних груп користувачів. Програмне забезпечення веб-сервера Apache має вбудовані засоби для вирішення цього завдання. Ознайомтеся з ними.

Інструкція

  1. При кожному запиті на будь-яку сторінку сайту, сервер перевіряє наявність у папці, де вона зберігається, службового файлу з назвою «. Htaccess». Якщо він є, то сервер, при обробці запиту, буде слідувати директивам з цього файлу. У нього можна помістити і директиви обмеження доступу до сторінок або іншими документами сайту з якихось ознаках. Зробити це можна, створивши такий файл у звичайному текстовому редакторі і завантаживши в потрібну вам папку сервера. Оскільки ці файли є службовими, то з браузера веб-відвідувача вони не доступні.
  2. Щоб вирішити проблему доступу радикально помістіть в файл htaccess ці директиви:

    Order Deny, Allow

    Deny from all

    Отримавши такі інструкції, веб-сервер закриє доступ до абсолютно всіх файлів і папок у цій та всіх вкладених в неї директоріях для всіх без винятку відвідувачів.
  3. Можна додати в тотальну заборону виключення для користувачів, які мають певний 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-адрес через кому.
  4. Якщо потрібно навпаки створити «чорний список» з небажаних 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-адрес треба перелічити через кому.
  5. Якщо потрібно обмежити доступ не до всіх документів у папці, а лише до окремого файлу, то директиви повинні виглядати так:

    <Files «hidden.html»>

      Order Deny, Allow

      Deny from all

      Allow from 77.84.20.18

    </ Files>

    Тут у першому рядку вказано файл, доступ до якого має бути обмежений (hidden.html), а в четвертому рядку записано виключення з забороняє правила — IP користувачів, яким доступ до файлу дозволений.
  6. Аналогічно можна обмежити доступ до групи файлів по масці їхніх імен:

    <Files «.(wma)$»>

      Order Deny, Allow

      Deny from all

      Allow from 77.84.20.18

    </ Files>

    Тут у першому рядку вказана маска імен файлів з обмеженим доступом — заборона буде поширюватися на всі файли з розширенням «wma». У четвертому рядку, як і в попередньому прикладі — IP користувачів, на яких обмеження не поширюється.
  7. Є можливість обмежити доступ до сторінок за типом браузера — таким способом можна відсіювати, наприклад, небажаних пошукових роботів:

    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>

    Тут у перших трьох рядках перераховані кілька небажаних типів браузерів (по одному на кожний рядок). Звичайно, при використанні такої конструкції вам потрібно замінити їх не ті, які докучають саме вашому сайту.