Как закрыть сайт через .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     888                 888  888     888 
888 888 888 888 888
888 888 888 888 888
Y88b d88P .d88b. .d88888 888 888
Y88b d88P d88P"88b d88" 888 888 888
Y88o88P 888 888 888 888 888 888
Y888P Y88b 888 Y88b 888 Y88b. .d88P
Y8P "Y88888 "Y88888 "Y88888P"
888
Y8b d88P
"Y88P"
Зарегистрируйтесь для добавления материалов без проверки.