режим обслуживания на root избегать аддон доменов - PullRequest
1 голос
/ 18 февраля 2011

Задача 1

Это немного сложно, но у меня есть 3+ аддон домена и их папки находятся в корне. Итак, пример

www/index.php   ROOTSITE.COM
www/example.com/index.php example.COM
www/example2.com/index.php example2.COM

Помните, что выше example.com и example2.com - это папки внутри сети

Поэтому, когда я перевожу ROOTSITE.COM в режим обслуживания .. используя

RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_ADDR} !^11\.111\.111\.111
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteRule ^(.*)$ http://rootsite.com/maintenance.html [R=307,L]

Он отправляет example.com example1.com на root.com/maintanance.html. Пожалуйста, расскажите, как избежать создания сайтов-примеров в режиме без обслуживания. Просто я не хочу, чтобы какие-либо правила .htaccess в корне влияли на домен аддона (в папках)

Задача 2

Также другое Мне нужен заранее сделанный таймер обратного отсчета (в часах: мин: сек), когда сайт переходит в режим обслуживания ... После окончания обратного отсчета он должен переключиться на rootsite.com .... он также может изменить .htaccess? Я имею в виду, когда обратный отсчет заканчивается, он должен изменить правило .htaccess, чтобы удалить правило режима обслуживания.

1 Ответ

1 голос
/ 18 февраля 2011

Задача 1

.htaccess применяется ко всем физическим подкаталогам независимо от виртуального хоста.

Решение 1 :

Создать www/example.com/.htaccess, содержащий:

RewriteEngine On

Это переопределит любые правила перезаписи в каталогах более высокого уровня.

Решение 2 :

Не помещайте правила перезаписи обслуживания в .htaccess. Вместо этого поместите их непосредственно в раздел <VirtualHost> в файле конфигурации вашего корневого сайта.


Задача 2

Поместите условие в ваше правило на основе текущей даты, используя переменные даты . Э.Г.

RewriteCond %{TIME_YEAR}-%{TIME_MON}-%{TIME_DAY}T%{TIME_HOUR} \
            2011-02-18T(09|1.|20)   # 9 am to 9 pm today

Это создает строку текущей даты и часа из переменных TIME_*, например, 2011-02-18T15 (это префикс даты в формате ISO ). Вы можете создать более длинную строку, включая минуты и секунды, если вам нужна гранулярность.

Регулярное выражение соответствует диапазону номеров от 9 до 20, поэтому оно будет соответствовать времени с 09:00:00 до 20:59:59, т.е. с 9:00 до 21:00.

Добавьте это условие рядом с двумя другими директивами RewriteCond, и правило будет активным только в определенном временном диапазоне.

...