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

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

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

     d8888   888                          
d8P888 888
d8P 888 888
d8P 888 888 888 .d88b. 888 888
d88 888 888 .88P d88P"88b `Y8bd8P'
8888888888 888888K 888 888 X88K
888 888 "88b Y88b 888 .d8""8b.
888 888 888 "Y88888 888 888
888
Y8b d88P
"Y88P"
Зарегистрируйтесь для добавления материалов без проверки.