Как закрыть сайт через .htaccess и .htpasswd?
Наверняка, каждый разработчик, хотя и сеошник тоже, сталкивался с ситуацией, когда сайт еще не готов, но его нужно залить на рабочий или тестовый домен. Да, можно забить гвоздь и положиться на русский «авось» в плане того, что сайт не имеет никаких уязвимостей, что поисковики обойдут стороной контент в это время.
Но есть решение, которое спрячет сайт от всех любопытных. Причем спрячет совершенно без каких-либо последующих санкций со стороны поисковиков – проверено!
Итак, чтобы закрыть сайт и повесить на него окошко авторизации нам потребуется:
- Apache, как сервер, на котором функционирует наш сайт;
- возможность редактировать файлы .htaccess и .htpasswd;
- SSH-доступ (не обязательно).
Создаем .htpasswd
Файл .htpasswd хранит информацию о пользователях и паролях для разграничения доступа к сайту. Пароли хранятся в хэшированном виде. Например, связка пользователь-пароль может выглядеть следующим образом: “admin:gx/4HIpSINdyQ”.
Приступим к генерации .htpasswd. Если у вас есть SSH-доступ, то перейдите в корневую папку с сайтом и воспользуйтесь командой:
- htpasswd -c .htpasswd USERNAME
Далее введите два раза пароль и получите файл .htpasswd в директории. Если есть потребность добавить еще одного пользователя, то используйте эту же команду, но без опции “-c”.
Если же вы размещаетесь на школолохостинге, то файлик придется создавать вручную. Для этого существуют как специальные программы, так и специальные web-сервисы. Ссылки я предоставлять не буду, воспользуйтесь поисковой фразой "Htpasswd Generator".
Редактируем .htaccess
Для корневого .htaccess сайта с самого верха дописываем следующие строки:
- AuthName "Secure Area"
- AuthType Basic
- AuthUserFile /path/to/your/directory/.htpasswd
- require valid-user
Первую строчку вы можете отредактировать как угодно – это часть сообщения, которое будет выводится в окне авторизации. Третья строчка – путь до файла со связкой пользователь-пароль .htpasswd. Хочу заметить, что путь необходимо указывать от корневой папки сервера. Знаю, что возникнут трудности поэтому скажу сразу, что получить полный путь можно через переменную PHP $_SERVER['DOCUMENT_ROOT'] или через команду pwd в консольном окне.
Собственно на этом все! Осталось убедиться, что все работает корректно. Если после ввода логина и пароля, вы получаете ошибку Internal Server Error, то с большой долей вероятности вы указали неверный путь в .htaccess до .htpasswd файла.
Помимо целого сайта вы также можете блокировать отдельные папки, создавая в них .htaccess c указанными выше строчками.
Берегите ваши сайты смолоду!
Добавить комментарий