Закрываем доступ к сайту
Время от времени у нас в студии возникают ситуации, когда по тем или иным причинам надо закрыть доступ к работающему сайту. К примеру, новый сайт, который только настраивается на сервере, или же на работающем проекте идет обновление функционала.
Естественно вопрос стоит в том, чтобы закрыть доступ для обычных посетителей, а для доверенных людей сайт должен функционировать.
Если честно, я уже не помню как мы это делали раньше :), но сейчас мы решаем этот вопрос следующим внедрением в index-файл, на который модреврайтом уходят все запросы. Можно еще внедрить в файл библиотеки, которая вызывается из всех скриптов проекта.
$SecretKey = 'i-want-to-see-this-site'; $AdminCookie = 'HOHOHO! I am super hacker!'; if ($_COOKIE['AdminCookie'] != $AdminCookie && $_SERVER['QUERY_STRING'] != $SecretKey) { require_once 'page_park.html'; exit; } else { setcookie('AdminCookie', $AdminCookie, time()+3600*24*365, '/'); if ($_SERVER['QUERY_STRING'] == $SecretKey) { header('Location: /'); exit; } }
Благодаря этому небольшому коду все люди будут попадать на page_park.html, а избранным достаточно зайти по ссылки http://наш_сайт/?i-want-to-see-this-site, чтобы получить полноценный доступ к сайту. И что самое главное, при последующих заходах избранные сразу без проблем будут попадать на работающий сайт, что очень полезно, если сайт настраивается и запускается в течении нескольких дней.
UPD. Это временная «шторка», а ключ и значение куки специально вынесены в переменные, чтобы их можно было менять от обновления к обновлению и от проекта к проекту.
P.S. Как раз сегодня утром настраивали новый сайт на сервере, вот и решил поделиться с общественностью такой незатейливой фишкой.