Я хочу подогреть людей вокруг моего нового проекта, поэтому я хочу, чтобы целевая страница была доступна до определенной даты, а затем она должна перенаправляться на весь сайт.
До указанной даты:
Каждый звонок на любую страницу сайта (даже /) должен временно перенаправляться на /promo/index.php
После этой же даты:
Каждый звонок в / promo / * должен перенаправлять в корень сайта /
Я начал с первого правила, подобного этому:
RewriteCond %{TIME} <20180705095200 [NC]
RewriteRule ^$ /promo/index.php [R=301,L]
=> До даты: он хорошо перенаправляет root / на promo / index.php, но если я пытаюсь / Home, он не перенаправляет на promo
Я тоже пробовал:
RewriteCond %{TIME} <20180705095200 [NC]
RewriteRule ^(.*)$ /promo/index.php [R=301,L] # LOOPS
=> До даты: он явно перенаправляет каждый URL на /promo/index.php, но кажется, что он также перенаправляет сам /promo/index.php на себя (он выдает мне ERR_TOO_MANY_REDIRECTS).
Затем я попытался закрыть все остальные мои правила для теста, и цикл продолжает создаваться ...
Редактировать 2 *
Благодаря FoxyFish у меня теперь есть следующий код:
RewriteCond %{REQUEST_URI} !/promo/index.php$
RewriteCond %{TIME} <19800705095200 [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\.(jpe?g?|gif|png|js|css|ttf|ico|json) [NC]
RewriteRule ^(.*)$ /promo/index.php [R=301,L]
RewriteCond %{TIME} >19800705095200 [NC]
RewriteRule /promo/index.php$ / [R=301,L]
Но эффект "После" (: p) не работает ...
Я имею в виду: после истечения срока действия /promo/index.php не перенаправляет на /. Это все еще доступно.
Редактировать 3 *
Вот окончательное решение для меня
RewriteCond %{REQUEST_URI} !/promo/index.php$
RewriteCond %{TIME} <19800705095200 [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\.(jpe?g?|gif|png|js|css|ttf|ico|json) [NC]
RewriteRule ^(.*)$ /promo/index.php [R=301,L]
RewriteCond %{TIME} >19800705095200 [NC]
RewriteRule ^promo/index.php$ / [R=301,L,NC]
Спасибо, FoxyFish !!!!!!
PD: вишня на торте будет переписывать, например, /promo/index.php в / Countdown.