Как закрыть сайт через .htaccess и .htpasswd?

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

Но есть решение, которое спрячет сайт от всех любопытных. Причем спрячет совершенно без каких-либо последующих санкций со стороны поисковиков – проверено!

Итак, чтобы закрыть сайт и повесить на него окошко авторизации нам потребуется:

  • Apache, как сервер, на котором функционирует наш сайт;
  • возможность редактировать файлы .htaccess и .htpasswd;
  • SSH-доступ (не обязательно).

Создаем .htpasswd

Файл .htpasswd хранит информацию о пользователях и паролях для разграничения доступа к сайту. Пароли хранятся в хэшированном виде. Например, связка пользователь-пароль может выглядеть следующим образом: “admin:gx/4HIpSINdyQ”.

Приступим к генерации .htpasswd. Если у вас есть SSH-доступ, то перейдите в корневую папку с сайтом и воспользуйтесь командой:

  1. htpasswd -c .htpasswd USERNAME

Далее введите два раза пароль и получите файл .htpasswd в директории. Если есть потребность добавить еще одного пользователя, то используйте эту же команду, но без опции “-c”.

Если же вы размещаетесь на школолохостинге, то файлик придется создавать вручную. Для этого существуют как специальные программы, так и специальные web-сервисы. Ссылки я предоставлять не буду, воспользуйтесь поисковой фразой "Htpasswd Generator".

Редактируем .htaccess

Для корневого .htaccess сайта с самого верха дописываем следующие строки:

  1. AuthName "Secure Area"
  2. AuthType Basic
  3. AuthUserFile /path/to/your/directory/.htpasswd
  4. require valid-user

Первую строчку вы можете отредактировать как угодно – это часть сообщения, которое будет выводится в окне авторизации. Третья строчка – путь до файла со связкой пользователь-пароль .htpasswd. Хочу заметить, что путь необходимо указывать от корневой папки сервера. Знаю, что возникнут трудности поэтому скажу сразу, что получить полный путь можно через переменную PHP $_SERVER['DOCUMENT_ROOT'] или через команду pwd в консольном окне.

Собственно на этом все! Осталось убедиться, что все работает корректно. Если после ввода логина и пароля, вы получаете ошибку Internal Server Error, то с большой долей вероятности вы указали неверный путь в .htaccess до .htpasswd файла.

Помимо целого сайта вы также можете блокировать отдельные папки, создавая в них .htaccess c указанными выше строчками.

Берегите ваши сайты смолоду!

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

 888            888b     d888           
888 8888b d8888
888 88888b.d88888
888 .d8888b 888Y88888P888 .d88b.
888 88K 888 Y888P 888 d8P Y8b
888 "Y8888b. 888 Y8P 888 88888888
888 X88 888 " 888 Y8b.
888 88888P' 888 888 "Y8888


Зарегистрируйтесь для добавления материалов без проверки.