В этой статье я хочу исправить одну из моих ошибок, точнее не совсем ошибку, просто не очень удачный совет. Дело в том, что недавно я просматривал собственные посты и заметил, что в одном из них задача решается далеко не лучшим образом. Речь шла о блокировке доступа к блогу на движке WordPress. Решение, которое я тогда предложил, работоспособное и им вполне можно пользоваться. Но только какое-то оно сложное Нужно было использовать несколько файлов .htaccess для разных папок блога. Доступ для администратора получался немного ограниченным, например, статические ссылки не работали. И, самое главное. Как абсолютно верно заметил Олег Лобач в комментариях к тому посту, если сайт закрыт на обслуживание, то необходимо отправлять заголовок с 503 кодом (Service Unavailable). Для посетителей этот код роли не играет, они все равно увидят страницу с описанием ошибки, но вот поисковые боты – другое дело. Думаю, никому не захочется, чтобы в индекс поисковика попала фраза «Зайдите позже» вместо контента блога. В общем, сейчас хочу рассказать о другом, на мой взгляд, более удачном решении. Нужно будет выполнить всего два шага. 1) Создать страницу, которую будем показывать посетителям во время обслуживания сайта. 2) Добавить пару строк в файл. htaccess, который находится в корне блога. Кстати, этот метод подойдет практически для любого сайта не зависимо от используемого движка.
Идея заключается в ограничении доступа на основании IP адреса. Т. е. при попытке доступа к сайту web сервер (apache) проверит ваш IP и если он не совпадет с заданным, то все запросы будут перенаправлены на специальную страницу. Итак, приступим. Шаг 1. Создаем страницу с сообщением о том, что сайт временно закрыт. Назовем её maintain. php и разместим в корне сайта.