Использование директив файла .htaccess — часть третья: группы пользователей

Приветствую Вас, гости и подписчики блога 4remind.ru. В предыдущей статье вы познакомились с методами ограничения доступа к каталогам или файлам своего сайта с использованием директив файла .htaccess, но там все описывалось и приводились в примеры только касательно ограничения доступа для конкретных пользователей. Однако такие методы не очень удобны, особенно в случаях, когда пользователей (посетителей) очень много, и к тому же уровни доступа должны быть разграничены по каким-то критериям.

Другими словами, в некоторых случаях может понадобиться разделять пользователей сайта, форума или другого вэб-портала на группы и для каждой из групп назначить определенные права доступа к файлам или каталогам.

Для решения подобной задачи предусмотрено использование директив AuthGroupFile, require group и файла групп. Вот постой пример использования упомянутых директив файла .htaccess:

AuthType Basic
AuthName "Доступ ограничен! Разрешено только для Модераторов!"
AuthGroupFile /usr/host/site/group
AuthUserFile  /usr/host/site/.htpasswd
require group moderators

Пояснение:
В третьей строке указывается путь к файлу групп с именем «group», а в пятой строке указано, что доступ разрешен только для группы пользователей «moderators». Кстати, файлу групп можно присваивать любое имя, не обязательно «group». Да, и напомню, что пароли каждого пользователя из группы «moderators» должны быть определены в файле .htpasswd.

Для создания групп пользователей используется простейший текстовый файл, в котором каждая конкретная группа пользователей описывается в отдельной строке. В начале каждой строки обязательно должно быть название группы, оканчивающееся знаком двоеточия «:», а после, разделяясь пробелами, должны перечисляться пользователи, которые входят в группу, имя которой указано в начале строки. Вот пример простого файла групп:

moderators: vlad alex eugeny
writers: bob123 igor19 ivanuz

В примере довольно очевидно, что определено две группы: «moderators» и «writers». В состав первой группы входят пользователи «vlad», «alex» и «eugeny», а во вторую группу входят «bob123», «igor19» и «ivanuz».

Таким образом, если в файле .htaccess будут присутствовать следующие директивы:

AuthType Basic
AuthName "Доступ ограничен! Разрешено только для специальных групп и пользователей!"
AuthGroupFile /usr/host/site/group
AuthUserFile  /usr/host/site/.htpasswd
require group moderators writers
require user admin1 superadmin

то доступ к каталогу или файлам будет разрешен только для пользователей из групп «moderators» и «writers» (пользователи этих групп должны быть ранее перечислены в файле групп «group»), а также отдельным пользователям с именами «admin1» и «superadmin».

Надеюсь, что информация из этой статьи поможет вам облегчить и упростить управление ограничением доступа к файлам или каталогам сайта как для отдельных пользователей (посетителей), так и для пользователей, распределенных по группам.

Метки: , , htpasswd, , , , сервер
Другие статьи похожей тематики:

Поделитесь материалом с другими, воспользуйтесь этими кнопками:
Получать обновления и новые материалы блога по E-mail

12 комментариев к “Использование директив файла .htaccess — часть третья: группы пользователей”

  1. Вит:

    вот этой штукой никогда не пользовался :) может кто сказать об обратном? просто ради интереса?

    Ответить
    • Ну, если ради интереса, то я например использовал разделение по группам пользователей на меж-корпоративных форумах, на базе «не-публичных» движков.

      Ответить
  2. shurik74:

    Это наверное больше необходимо для форумов или порталов с большой посещаемостью. А для блогов, разделение на группы пользователей,скорее всего не очень принципиально, хотя могу и ошибаться

    Ответить
    • Естественно, нет смысла разделять на группы для сайтов и блогов, где зарегистрировано несколько человек или например для форумов, где существует всего только пару групп для доступа. Но в то же время, если Вы к примеру сами создаете или создали свой веб-ресурс на нестандартном (собственноручном) движке, на котором кроме простых посетителей будут еще и авторы, редакторы, художники, координаторы, модераторы и прочие, то смысл в использовании директив AuthGroupFile конечно же есть.

      Кроме того, можно, а иногда даже и нужно, на популярных движках сайтов использовать директивы AuthGroupFile, require group и файл групп, например для доступа ко временным разделам, выделенным для каких-то определенных целей, т.е. разделам, которые к самой CMS не имеют никакого отношения и которые CMS не может контролировать.

      Ответить
  3. artis72:

    Как я понял это разделение происходит для прошедших внутреннюю регистрацию и вошедших на сайт под своими данными, а если задача стоит разделить потоки до?

    Ответить
  4. Андрей:

    Ну это пока для меня темный лес и не знаю хочу ли я туди идти.

    Ответить
  5. Teresa:

    А подскажите, файвиконку тоже там надо прописывать? Мне тут один тип сказал, что надо. Но я сомневаюсь.

    Ответить
    • Teresa, что Вы имели ввиду? Куда «туда» прописывать?
      Вопрос кажется не в эту тему…
      В любом случае, классически файл favicon.ico должен быть в корневом каталоге сайта.

      Однако рекомендуется еще дополнительно прописывать тег «link» в блок «HEAD» страниц сайта, вот так:

      или так, если файл иконки в PNG формате:

      Ответить
  6. Teresa:

    Спасибо, вот нашла совет: Фавикон — стандартный тип image/x-icon Можно настроить в .htaccess, добавить строку: AddType image/x-icon .ico
    Это правда надо ?

    Ответить
    • Teresa, абсолютно не нужно именно «favicon.ico» в .htaccess пихать. Главное, чтобы «favicon.ico» был в корневом каталоге сайта и в блоке HEAD страниц. А в совете, который Вы нашли, всего лишь серверу указывается сопоставление расширения файлов «.ico» нужному типу файлов, конкретно «image/x-icon», что делать Вам для своего блога не имеет смысла.

      Ответить
  7. Teresa:

    Спасибо, но столько умников развелось и не знаешь кому верить :) ?

    Ответить

Оставить комментарий

Подписаться на обновления блога 4remind.ru по RSS
Новости блога в социальных сетях

="4remind.ru