Я застрял здесь и сейчас на несколько часов ... любая помощь будет оценена!
Что мне нужно сделать:
Есть приложение, где внадо "защищать".Это означает, что мне нужно показать страницу с отказом от ответственности, которая не является частью самого защищенного приложения, а находится в том же домене / сервере.Эту страницу отказа от ответственности необходимо показывать каждому посетителю каждые 8 часов.
Моя концепция:
В Apache при каждом запросе проверяйте,имеется определенный файл cookie, «перехваченный».
При наличии файла cookie просто обработайте запрошенный URL-адрес без изменений.
Еслиcookie не существует, и URL-адрес не является catch.html, перенаправьте его в /catch.html?intercepted_url= enjrequerst_uri_with_params}.на этом же шаге установите cookie.
Браузер установит cookie, следит за перенаправлением и загрузит catch.html (cookie уже существует), пользователь увидит заявление об отказена этой странице.
В файле catch.html при использовании JavaScript файл cookie, «перехваченный», будет обновляться с продолжительностью жизни 8 часов
В catch.html с использованием JavaScript будет отображаться ссылка, указывающая на перехваченный URL.
Пользователь щелкнет созданную ссылку и выдаст новый запрос к ранее перехваченному запросу
GOTO: 1
Что я пробовал до сих пор:
Конфигурация Apache:
# Exclude the catch destination in order to prevent a redirect loop
RewriteCond %{REQUEST_URI} !/catch.html
# Check if the cookie "intercepted" is missing
RewriteCond %{HTTP_COOKIE} !intercepted
# Redirect and append the original url as request parameter, preserving params, and setting the cookie
RewriteRule ^(.*)$ /catch.html?intercepted_url=$1 [QSA,R=301,CO=intercepted:TRUE:%{HTTP_HOST}]
Текущий результат:
- Открытие http://local.example.com/foo/bar/baz.html?a=b&x=z&1=2результаты ia перенаправление, как и ожидалось, ОК
- Повторная попытка первого URL теперь должна пройти, так как файл cookie установлен, но нет, я застрял на странице отказа от ответственности: (
Есть идеи, как это исправить?Спасибо всем заранее!