Как сделать заглушку на сайт когда идут временные работы?

Меня давным-давно мучил вопрос технической реализации так называемой заглушки на сайт в то время, когда на нем идут технические работы.

Сделать это я смог только спустя 5 лет после погружения во всякие околоВЭБные дела. Мне стыдно, но теперь я все осознал и буду использовать это везде и всегда.

Делать это можно не только в моем любимом textpattern, а абсолютно в любой CMS, ибо метод основан на использовании .htaccess.

До этого момента, я всегда выкатывал новый дизайн, прикручивал что-то новое на сайт и просто исправлял косяки, просто на “живую”. Нередки были случаи, когда случайные посетители сайта, заходя на него, тут же уходили, ибо в эти моменты мой воспаленный мозг пытался внести в мир вэба что-то новое, а не совсем ровные руки громоздили новый код.

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

Как это работает?

Работает, как оказалось, все очень просто: при заходе на сайт происходит перенаправление на заранее созданную страницу-заглушку, а для того чтобы зайти Вам на сайт и не попасть на заглушку, необходимо добавить свой IP-адрес в исключения. Это еще один довод в пользу того, что у web-разработчика должен быть свой, выделенный IP-адрес для работы. Если у Вас его нет, то самое подходящее время это исправить.

Рабочий пример

Давайте по пунктам.

  1. Узнаем свой IP-адрес. Допустим у нас 178.74.102.96.
  2. Создаем саму страницу заглушку. У нас, к примеру, это maintenance.html, которая размещена в корне сайта.
  3. В файле .htaccess добавляем вот такой вот код:
    <IfModule mod_rewrite.c>
        # заглушка
        RewriteCond %{REQUEST_URI} !/maintenance.html$
        RewriteCond %{REMOTE_ADDR} !^178\.74\.102\.96
        RewriteRule $ /maintenance.html [R=302,L]
    </IfModule>

Теперь для всех посетителей вашего сайта, которые зайдут на него, будет выводиться страница-заглушка, а для Вас сайт все также будет доступен.

P.S. Лично у меня, на боевом сервере этот код закомментирован и ждет своего часа. Чего и Вам советую.

Комментарии:

  1. Евгений опубликовал комментарий 4 Ноябрь 2016, 22:39 #

    Спасибо! Давно искал такую информацию. Уже начал выгружать сайт, который весит 15 ГБ на другой домен)) и тут нашел вашу статью. Успехов вам!

    | Ответить
Имя
e-mail
Сайт
Текст комментария: