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

23 июля, 2008

Обслуживание сайта
Практически каждому web мастеру приходится обновлять свои сайты. Установка плагинов, изменение дизайна, обновление движка, все эти операции нужно регулярно выполнять.

Сложность в том, что все эти работы занимают довольно много времени и нарушают работу сайта. Естественно никому не хочется, чтобы посетители наблюдали «кривой» дизайн или читали описания ошибок. Поэтому доступ к сайту на время таких работ нужно ограничить.

В этой статье я расскажу, как это сделать для блога на движке WordPress.

Будем считать, что блог находится на shared хостинге и варианты вроде перенаправления посетителя на другой сервер вам недоступны. Управлять web сервером можно только с помощью файла .htaccess.

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

В принципе, можно ограничить доступ к сайту с помощью пароля. В большинстве случаев для этого вам не придется даже вручную изменять .htaccess. Панели управления (например, cPanel) предоставляют удобный интерфейс для управления доступом.

Но тут есть один недостаток. Форма ввода имени и пароля будет сбивать посетителей с толку.

Поэтому, гораздо лучше показать симпатичную страничку с извинениями и просьбой зайти через некоторое время.

Приступаем.

Прежде всего, создаем файл с названием index.html и примерно таким содержимым.

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  5. <title>Сайт на обслуживании</title>
  6. </head>
  7. <body>
  8. <h2>Извените, доступ к сайту временно закрыт</h2>
  9. <h3>Проводятся технические работы</h3>
  10. <h3>Попробуйте зайти через 30 мин</h3>
  11. <h4>С уважением, администрация simplecoding.org</h4>
  12. </body>
  13. <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, бизнес в интернете
Предлагаем не услуги по продвижению сайтов, а решение задач, стоящих перед бизнесом клиентов.

Понравилась статья? Подпишитесь на продолжение rss link !

]]>

Добавьте эту страницу в google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

]]>

Опубликовано в Web разработка, WordPress, Разное

]]>

Комментарии (10)

Вы можете отслеживать обсуждение записи с помощью RSS 2.0 rss link

Вы также можете оставить комментарий, или трекбек с Вашего сайта.

]]>
  1. Спасибо за статью.
    Есть, правда, одно замечание. Неплохо бы при перенаправлении на index.html выдавать заголовок с кодом 503, чтобы пауки не решили, что на вашем блоге резко поменялось содержимое.

    Кстати, для целей технических работ на блоге для вордпресса есть плагин "Maintenance Mode".

    • Да, плагин - это хороший вариант. Только не совсем понятно как он будет работать при обновлении самого WP. Судя по описанию, он проверяет залогинились вы в админке или нет и выдает заготовленную страницу для тех, кто не логинился. По-моему, если часть файлов WP в этот момент перезаписывается, то плангин может просто не работать.

      А насчет заголовка с кодом 503 полностью согласен. Пропустил.

  2. А можно использовать конструкцию
    DirectoryIndex index.html index.php
    и тогда тольок если в папке есть index.html то она его выведет, если же нет - то index.php
    То есть не надо в wp-admin класть свой .htaccess да и вообще его менять после того как удалишь index.html

  3. Большое спасибо за статью, все просто и вполне доступно:)
    Олег - если сайт меняется не полностью, а только частитчно, или тем более тока дизайн то никаких заголовков с кодом 503 совсем не надо.

  4. Спасибо за информацию, теперь хоть буду знать как закрыть доступ на сайт.

  5. Вы пишите простые вещи понятным языком. Да еще и выходит на пару листов. Браво! Мне бы так :)

    Статья полезная (хотя я знал это все, но прочитал только потому, что пишите Вы красиво). Вообще блог у Вас классный. :)

    • Мне бы так

      Только не надо прибедняться :-) Мне тоже ваш блог понравился.

      Кстати, много слов, не значит - много полезной информации. Я стараюсь ориентироваться на новичков, расписывать каждый шаг. Если человек сам хорошо разбирается он текст пропустит.

  6. О,это действительно больная тема,попробую ваши советы,отпишусь!!!

  7. Согласен, что лучше не лить воду понапрасну. Я вот и восхитился Вашим умением "разбавлять" статьи подробностями и просто "междомеееетиями" в очень точной пропорции, чтобы и материал оставался весь полезным и читать было приятно. У меня часто слишком много слов. Я вообще как-то теоретик :)

]]>

Оставить комментарий

* - обязательные для заполнения поля

]]>