Как заблокировать доступ к директории сайта.

19.03.2020
Сложность
2 мин.
992

Заблокировать любой каталог можно при помощи функций .htaccess (сервер apache), а также при помощи nginx сервера. Для пользователей хостинга, чаще всего подходит именно .htaccess, т.к. к конфигурации nginx сервера не всегда есть доступ.

  1. Зайдите в свой аккаунт через FTP или SSH.
  2. Создайте файл .htaccess в корневой директории сайта, если такого файла нет.
  3. Внесите в начале файла блокировки, изменив directory12 на желаемую директорию, после чего файл сохраните:
    RewriteEngine On
    RewriteRule (^|/)directory12(/|$) - [F]
  4. Попробуйте получить доступ к файлу в заблокированной директории:
    curl -L -I http://your_site.ru/directory12/any_file.php
    Если блокировка работает, то ответ будет "HTTP/1.1 403 Forbidden".
  1. Зайдите на сервер через SSH под root пользователем.
  2. Создайте файл с кастомными блокировками:
  3. touch /etc/nginx/vhosts-includes/custom_blocks.conf
  4. Внесите в начале файла блокировки, изменив directory12 на желаемую директорию, а сайт your_website.com на название сайта, после чего файл сохраните:
    location /directory12/ {
      if ($host = your_website.com {
        return 444;
      }
    }
  5. Проверьте конфигурацию nginx:
    nginx -t
  6. Если ошибок в конфигурации нет, перезагрузите службу nginx:
    service nginx reload
    Если reload не сработал:
    service nginx restart
  7. Возьмите любого заблокированного бота и проверьте curl доступность сайта:
    curl -L -I http://your_website.com/directory12/any_file.php
    Если блокировка работает, то ответ будет 444 код ответа.
Были ли сведения полезными?
4 
Продолжая использовать этот сайт и пользуясь нашими услугами, Вы соглашаетесь с Правилами и условиями веб-сайта и использованием файлов cookie на нашем веб-сайте. Также ознакомьтесь с нашей Политикой конфиденциальности, согласно которой, в заявленной степени, Вы соглашаетесь на обработку Ваших персональных данных.