Как закрыть сайт через .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 указанными выше строчками.

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

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

 8888888b.    .d8888b.   888    888   .d8888b.  
888 Y88b d88P Y88b 888 888 d88P Y88b
888 888 888 888 888 888 888
888 d88P .d88P 8888888888 Y88b. d888
8888888P" .od888P" 888 888 "Y888P888
888 T88b d88P" 888 888 888
888 T88b 888" 888 888 Y88b d88P
888 T88b 888888888 888 888 "Y8888P"


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