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

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

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

            .d88888b.     888888   .d8888b.  
d88P" "Y88b "88b d88P Y88b
888 888 888 888
.d8888b 888 888 888 888d888b.
d88P" 888 888 888 888P "Y88b
888 888 Y8b 888 888 888 888
Y88b. Y88b.Y8b88P 88P Y88b d88P
"Y8888P "Y888888" 888 "Y8888P"
Y8b .d88P
.d88P"
888P"
Зарегистрируйтесь для добавления материалов без проверки.