Содержание
Если вы разработали сайт под управлением Вордпресс и заказчик попросил его закрыть от всех, пока начальство не утвердит. То в Вордпрессе я не нашёл стандартных способов сделать это.
Чтобы на время создания и тестирования сайта скрыть его от посторонних глаз, его можно закрыть паролем.
Защита сайта с помощью .htaccess и .htpasswd
Для этого добавляем в файл .htaccess
следующие строки:
<code>AuthType Basic</code> <code>AuthName "trade"</code> <code>AuthUserFile /home/trademark/domains/trademark.com/public_html/.htpasswd</code> <code>require valid-user</code>
И сгенерировать файл .htpasswd с помощью специальной программы (htpasswd.exe
), содержимое которого будет примерно следующим:
trade:$apr1$yU21iBIN$SCirWW7McNt7fSem9.alJ.
где: trade — это логин, а абракадабры — соответственно пароль в зашифрованном виде, разделённые двоеточием.
Как создать файл с паролями .htpasswd
Файл с паролями создается с помощью специальной программы htpasswd.exe
(ссылка для скачивания утилиты).
Программа запускается из командной строки. В Windows 2000/XP есть стандартная утилита cmd. Для этого нажмите на кнопку «Пуск» → «Выполнить», и наберите cmd, после чего нажмите ОК. После чего должно открыться окно утилиты cmd.
Потом перейдите в директорию, где находится утилита htpasswd.exe.
Теперь можно приступить к созданию файла с паролем. Введите в командную строку следующее:
<code>htpasswd -cm .htpasswd trade</code>
-cm
— это ключи для утилиты. Ключ с
— указывает, что необходимо создать новый файл с паролями. Если файл с таким именем уже существует, то он будет перезаписан. Ключ m
— определяет шифрование по алгоритму MD5.
.htpasswd
— имя файла с паролями (можете использовать любое имя).
trade
— имя пользователя, которому будет разрешен доступ в закрытую область сайта.
В ответ, должен появится запрос на ввод пароля и его повтор. Если все правильно, то в завершении появится сообщение: Adding password for user admin. И появится файл .htpasswd, в котором будет находиться строка с именем пользователя и хеш-код его пароля. Для того, что бы в тот же файл .htpasswd добавить еще одного пользователя следует убрать ключ -c из команды запуска утилиты htpasswd.exe.
<code>htpasswd -m .htpasswd trade</code>
Файл с паролями создан. Теперь можно закачать его на сервер. Файлы с паролями крайне желательно хранить выше корневой директории сайта — туда, куда не будет доступа посетителям.
Если это невозможно, то файлы с паролями следует обязательно защитить. Это можно сделать с помощью файлов .htaccess. Чтобы защитить файлы с паролями создайте файл со строками, покажанными ниже.
Защита файлов .htpasswd
<code><Files .htpasswd></code> <code>deny from all</code> <code></Files></code>
Как закрыть сайт от поисковых систем
Чтобы поисковые системы не индексировали черновой контент и полупустые страницы сайта, находящегося в разработке, создаем файл robots.txt
и пишем одну строку
<code>Disallow: / # блокирует доступ ко всему сайту</code>
Как закрыть доступ к сайту с помощью плагина
Для WordPress есть простой очень удобный плагин
Действительно можно обойтись только файлом robots.txt ??
Нет, конечно, еще нужно сгенерировать файл .htpasswd. В общем сделать все, как описано в посте :).
Спасибо, а то зарегистрировал новый домен — не хочу, что бы пока поисковики туда совали свой нос ))
Не совсем так. Это закрытие сайта от посторонних глаз. Если вы хотите, чтобы поисковики не индексировали сайт, пока он находится на этапе разработки, то нужно использовать соответствующую директиву в robots.txt.
Disallow: / # блокирует доступ ко всему сайту
У меня получилось, правда помучился. Спасибо!
Замечательно. А с какими сложностями пришлось столкнуться?
А как сделать то же самое для определённого сайта, если на одной платформе wordpress этих сайтов несколько?
На одном движке несколько сайтов? А как это возможно? Что это за версия Вордпресс?
Стандартная версия. В wp-config.php вместо стандартной записи $prefix пишется:
$prefix = $_SERVER[«HTTP_HOST»];
$prefix = str_replace(«www.», «», $prefix);
$prefix = str_replace(«-«, «», $prefix);
$prefix = str_replace(«.», «», $prefix);
$table_prefix = $prefix.»_» ;
и тогда в БД формируются таблицы в зависимости от названия сайта. Так можно поставить несколько сайтов даже в одну тему.
То есть будет одна админка, с помощью которой можно управлять несколькими сайтами?
Подозреваю что таким методом легко можно закрыть конкретный урл?
Не знаю, не пробовал. Если получится, отпишите потом.