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

Владимир | | htaccess, Web разработка, WordPress, Разное.

Обслуживание сайта
Практически каждому 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, бизнес в интернете
Предлагаем не услуги по продвижению сайтов, а решение задач, стоящих перед бизнесом клиентов.