我现在被困在这里几个小时...任何帮助将不胜感激!
我需要做什么:
有一个应用需要“保护”。这意味着我需要显示一个“免责声明”页面,它不是受保护应用程序本身的一部分,而是在同一个域/服务器下。此免责声明页面需要每8小时向每位访客显示。
我的理念:
到目前为止我尝试了什么:
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}]
目前的结果:
任何想法如何解决这一问题?谢谢大家!
这个概念按预期工作。重定向按照描述执行,但浏览器已缓存重定向,因为它是永久重定向(301)。解决方案是使用临时重定向(302)。
我最终还存储了cookie中截取的网址,以保持网址清洁。但我没有设法通过重定向设置cookie的实时时间。似乎没有办法在重写规则中计算它。我用了一些javascript来重写catch页面上的cookie。