Файл htaccess. Управление доступом

Файл htaccess

От автора: в этом уроке мы с вами познакомимся сразу с несколькими директивами сервера Apache, которые позволят нам управлять доступом. Используя эти директивы, мы сможем управлять доступом, к примеру, запрещая или разрешая доступ к сайту, к части сайта или к отдельным файлам на сервере.

скачать исходникискачать урок

Первая директива, с которой мы познакомимся, это директива Order. Синтаксис директивы прост и она может быть использована в двух вариантах:

Бесплатный курс по PHP программированию

Освойте курс и создайте динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

Deny и Allow – это две другие директивы, которые как раз позволяют запретить (deny) или разрешить (allow) доступ.

В зависимости от выбранного варианта [Deny,Allow] или [Allow,Deny] для директивы Order, мы изменяем логику работы сервера. Если используем первый вариант (Deny,Allow), то мы сообщаем серверу, что хотим запретить доступ для всех (deny), кроме тех, которым разрешим (Allow).

Если использован второй вариант (Allow,Deny), тогда подразумевается, что мы разрешаем доступ всем, кроме определенных IP.

Здесь стоит отметить, что на самом деле использование директивы Order не является обязательным и возможно использование директив Deny и Allow без директивы Order. Также не будет ошибкой, если, к примеру, объявив в директиве Order вариант Deny,Allow, мы сначала используем директиву Allow, а затем Deny. Хотя все же лучше будет, если мы в этом вопросе не будем отходить от рекомендаций документации.

Итак, для того, чтобы закрыть доступ к сайту для всех, достаточно прописать в файле htaccess в корне следующие строки:

Так мы закрыли доступ ко всему сайту для всех IP. Теперь сервер будет отдавать клиенту ответ 403, т.е. доступ запрещен. Если вы захотите открыть при этом доступ к сайту с конкретного IP, тогда его можно указать в директиве Allow. Например, откроем доступ для IP 127.0.0.1:

Также можно открывать доступ для нескольких IP. Для этого достаточно перечислить их через пробел:

Бесплатный курс по PHP программированию

Освойте курс и создайте динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

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

А что, если мы хотим запретить доступ не к папке, а к файлу. Для этого мы воспользуемся еще двумя директивами: Files и FilesMatch. Данные директивы похожи на HTML-теги, поскольку требуют закрывающей директивы и заключены в знаки меньше/больше:

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

Теперь файл пропадет из листинга каталога и при попытке обращения к файлу напрямую сервер вернет нам вместо файла 403 ошибку.

Если мы хотим ограничить доступ к группе файлов, то здесь можно использовать директиву FilesMatch вкупе с регулярными выражениями. Например, так можно ограничить доступ к графическим файлам и архивам:

В видео версии урока вы найдете больше примеров работы с данными директивами.

На этом текущий урок завершен. Удачи и до встречи в следующем!

Предыдущие уроки:

1. Файл htaccess. Начинаем знакомство

2. Файл htaccess. Страницы ошибок

Бесплатный курс по PHP программированию

Освойте курс и создайте динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

Разработка веб-приложения на PHP

Создайте веб-приложение на PHP на примере приема платежей на сайте

Получить

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

Комментарии (4)

  1. Sam

    Интересный урок!!! А возможно ли сделать так что сайт будет открыт лишь только для членов «клуба» и закрыт для всех остальных. Например ,сайт супер байкеров, на тёмном фоне выплывает окно и предлогает или зарегестрироватся или войти, а при входе спрашивает вы вообще байкер нет бай бай это сайт не для вас, вы байкер но не супер извените но сайт не для вас, вы супер байкер заходите пожалуста введите ник и код и заходите, ну вот что то в этом роде. Если в озможно может покажете как желательно в видео зарание блогодарен!!!

    • Андрей Кудлай

      Для этого достаточно разрешать просмотр сайта только авторизованным пользователям. Htaccess здесь не нужен и все делается посредством программной части.

  2. Sam

    Есть живой пример как?

    • Андрей Кудлай

      Любой наш курс, в котором реализована система авторизации/регистрации: Интернет-магазин под ключ, Корпоративный сайт под ключ. Также система авторизации уже реализована в бесплатном цикле Каталог товаров. Ну и можно брать готовые CMS, например WordPress, где имеется авторизация/регистрация.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Я не робот.

Spam Protection by WP-SpamFree