Приветствую Вас, гости и подписчики блога 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».
Надеюсь, что информация из этой статьи поможет вам облегчить и упростить управление ограничением доступа к файлам или каталогам сайта как для отдельных пользователей (посетителей), так и для пользователей, распределенных по группам.
Метки: apache, htaccess, htpasswd, группы, директива, защита, сервер
вот этой штукой никогда не пользовался :) может кто сказать об обратном? просто ради интереса?
Ну, если ради интереса, то я например использовал разделение по группам пользователей на меж-корпоративных форумах, на базе «не-публичных» движков.
Это наверное больше необходимо для форумов или порталов с большой посещаемостью. А для блогов, разделение на группы пользователей,скорее всего не очень принципиально, хотя могу и ошибаться
Естественно, нет смысла разделять на группы для сайтов и блогов, где зарегистрировано несколько человек или например для форумов, где существует всего только пару групп для доступа. Но в то же время, если Вы к примеру сами создаете или создали свой веб-ресурс на нестандартном (собственноручном) движке, на котором кроме простых посетителей будут еще и авторы, редакторы, художники, координаторы, модераторы и прочие, то смысл в использовании директив AuthGroupFile конечно же есть.
Кроме того, можно, а иногда даже и нужно, на популярных движках сайтов использовать директивы AuthGroupFile, require group и файл групп, например для доступа ко временным разделам, выделенным для каких-то определенных целей, т.е. разделам, которые к самой CMS не имеют никакого отношения и которые CMS не может контролировать.
Как я понял это разделение происходит для прошедших внутреннюю регистрацию и вошедших на сайт под своими данными, а если задача стоит разделить потоки до?
Так в чем проблема? Можно просто создать пользователей, назначить им пароли и сообщить им о них, как в предыдущей статье Использование директив файла .htaccess — часть вторая: парольная защита
Ну это пока для меня темный лес и не знаю хочу ли я туди идти.
А подскажите, файвиконку тоже там надо прописывать? Мне тут один тип сказал, что надо. Но я сомневаюсь.
Teresa, что Вы имели ввиду? Куда «туда» прописывать?
Вопрос кажется не в эту тему…
В любом случае, классически файл favicon.ico должен быть в корневом каталоге сайта.
Однако рекомендуется еще дополнительно прописывать тег «link» в блок «HEAD» страниц сайта, вот так:
или так, если файл иконки в PNG формате:
Спасибо, вот нашла совет: Фавикон — стандартный тип image/x-icon Можно настроить в .htaccess, добавить строку: AddType image/x-icon .ico
Это правда надо ?
Teresa, абсолютно не нужно именно «favicon.ico» в .htaccess пихать. Главное, чтобы «favicon.ico» был в корневом каталоге сайта и в блоке HEAD страниц. А в совете, который Вы нашли, всего лишь серверу указывается сопоставление расширения файлов «.ico» нужному типу файлов, конкретно «image/x-icon», что делать Вам для своего блога не имеет смысла.
Спасибо, но столько умников развелось и не знаешь кому верить :) ?