Как закрыть доступ к сайту на время обслуживания

Практически каждому web мастеру приходится обновлять свои сайты. Установка плагинов, изменение дизайна, обновление движка, все эти операции нужно регулярно выполнять.
Сложность в том, что все эти работы занимают довольно много времени и нарушают работу сайта. Естественно никому не хочется, чтобы посетители наблюдали «кривой» дизайн или читали описания ошибок. Поэтому доступ к сайту на время таких работ нужно ограничить.
В этой статье я расскажу, как это сделать для блога на движке WordPress.
Будем считать, что блог находится на shared хостинге и варианты вроде перенаправления посетителя на другой сервер вам недоступны. Управлять web сервером можно только с помощью файла .htaccess.
Кроме того, доступ закрыть нужно не полностью, а только для посетителей. Сами вы должны иметь возможность работать в админке, да и посмотреть на результат тоже нужно.
В принципе, можно ограничить доступ к сайту с помощью пароля. В большинстве случаев для этого вам не придется даже вручную изменять .htaccess. Панели управления (например, cPanel) предоставляют удобный интерфейс для управления доступом.
Но тут есть один недостаток. Форма ввода имени и пароля будет сбивать посетителей с толку.
Поэтому, гораздо лучше показать симпатичную страничку с извинениями и просьбой зайти через некоторое время.
Приступаем.
Прежде всего, создаем файл с названием index.html и примерно таким содержимым.
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
<html xmlns="http://www.w3.org/1999/xhtml">
-
<head>
-
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-
<title>Сайт на обслуживании</title>
-
</head>
-
<body>
-
<h2>Извените, доступ к сайту временно закрыт</h2>
-
<h3>Проводятся технические работы</h3>
-
<h3>Попробуйте зайти через 30 мин</h3>
-
<h4>С уважением, администрация simplecoding.org</h4>
-
</body>
-
<html>
Примечание. Лучше всего если дизайн страницы будет напоминать ваш блог. Тогда посетитель не будет думать, что он ошибся адресом.
Копируем этот файл в корень сайта. Скрипт WordPress, который запускается по-умолчанию, называется index.php, поэтому проблем с именами файлов быть не должно.
Теперь нужно чтобы при обращении к сайту сервер отправил посетителю именно этот файл.
Для этого, находим в корне сайта файл .htaccess, делаем резервную копию .htaccess_old и добавляем в него строку
DirectoryIndex index.html
После этого ищем строку RewriteRule . /index.php и изменяем ее на RewriteRule . /index.html
Теперь при обращении по адресу http://www.mysite.domain будет показана сервисная страница. Кроме того, обращения на любые страницы сайта будут также перенаправлены на index.html.
Обратите внимание, что блог остался доступен, просто теперь нужно явно указать имя скрипта:
http://www.mysite.domain/index.php
Следующий шаг. Переходим в папку /wp-admin и создаем в ней файл .htaccess с одной директивой:
DirectoryIndex index.php
Если этого не сделать директива из .htaccess в корне сайта будет применена ко всем подпапкам, а это сделает нерабочей админку.
Все. Можно приступать к обновлению сайта. Вход в админ панель находится здесь: http://www.mysite.domain/wp-login.php
Точно также можно обратиться к любому скрипту.
Отдельно хочу остановиться на тестировании блога.
Как я уже говорил, главная страница находится по адресу http://www.mysite.domain/index.php. Но ссылки на ней теперь ведут на index.html.
Если вам все-таки нужно посмотреть страницы с постами, то придется определить их id в базе данных. Для этого заходим в раздел «Управление» админ-панели, наводим курсор на ссылку и смотрим адрес ссылки в строке состояния. В конце адреса будет параметр post=число. Используя это число можно попасть на страницу нужной записи.
Для этого вводим в строке адреса:
http://www.mysite.domain/index.php?p=число
Точно также для доступа к категориям используем:
http://www.mysite.domain/index.php?cat=число
После того, как работы будут завершены, восстанавливаем .htaccess из резервной копии. Теперь блог снова будет доступен.
До встречи!
Спонсор статьи:
Блог SEO, SMO, бизнес в интернете
Предлагаем не услуги по продвижению сайтов, а решение задач, стоящих перед бизнесом клиентов.
Понравилась статья? Подпишитесь на продолжение
!
Опубликовано в Web разработка, WordPress, Разное
Комментарии (10)
Вы можете отслеживать обсуждение записи с помощью RSS 2.0 ![]()
Вы также можете оставить комментарий, или трекбек с Вашего сайта.







Спасибо за статью.
Есть, правда, одно замечание. Неплохо бы при перенаправлении на index.html выдавать заголовок с кодом 503, чтобы пауки не решили, что на вашем блоге резко поменялось содержимое.
Кстати, для целей технических работ на блоге для вордпресса есть плагин "Maintenance Mode".
Да, плагин - это хороший вариант. Только не совсем понятно как он будет работать при обновлении самого WP. Судя по описанию, он проверяет залогинились вы в админке или нет и выдает заготовленную страницу для тех, кто не логинился. По-моему, если часть файлов WP в этот момент перезаписывается, то плангин может просто не работать.
А насчет заголовка с кодом 503 полностью согласен. Пропустил.
А можно использовать конструкцию
DirectoryIndex index.html index.php
и тогда тольок если в папке есть index.html то она его выведет, если же нет - то index.php
То есть не надо в wp-admin класть свой .htaccess да и вообще его менять после того как удалишь index.html
Большое спасибо за статью, все просто и вполне доступно:)
Олег - если сайт меняется не полностью, а только частитчно, или тем более тока дизайн то никаких заголовков с кодом 503 совсем не надо.
Никон, в статье ведь речь шла о полной блокировке доступа к публичной области.
Спасибо за информацию, теперь хоть буду знать как закрыть доступ на сайт.
Вы пишите простые вещи понятным языком. Да еще и выходит на пару листов. Браво! Мне бы так
Статья полезная (хотя я знал это все, но прочитал только потому, что пишите Вы красиво). Вообще блог у Вас классный.
Только не надо прибедняться
Мне тоже ваш блог понравился.
Кстати, много слов, не значит - много полезной информации. Я стараюсь ориентироваться на новичков, расписывать каждый шаг. Если человек сам хорошо разбирается он текст пропустит.
О,это действительно больная тема,попробую ваши советы,отпишусь!!!
Согласен, что лучше не лить воду понапрасну. Я вот и восхитился Вашим умением "разбавлять" статьи подробностями и просто "междомеееетиями" в очень точной пропорции, чтобы и материал оставался весь полезным и читать было приятно. У меня часто слишком много слов. Я вообще как-то теоретик