浏览器的重定向
我正在为使用Linux + iptables的用户尝试访问任何网页时重定向到登录页面的局域网编写一个Internet访问工具。该登录页面要求输入用户名和密码,如果身份验证成功,则会删除iptables规则,以便后续请求转到最初预期的网页。浏览器的重定向
情况是这样的:
- 如果我去http://www.abc.com,我的默认网关重定向我10.0.10.10/login.php
- 我成功登录。
- 如果我再次尝试去http://www.abc.com,浏览器会自动将我发送回10.0.10.10,这就像某种缓存。
- 如果我尝试进入除abc.com以外的其他页面,则按预期工作。
我该如何告诉浏览器删除重定向的“记忆”规则?
您需要硬刷新缓存。
通常你可以做到这一点与CTRL + F5或CTRL + [R
或更改您的规则,使第二重定向到相同的页面,但与一些#
片段标识符
例如:如果用户输入abc.com
并在登录时被重定向,如果他再次尝试登录abc.com
,并且您看到他已登录将他重定向到abc.com#1
问题是,我看不到用户打算去哪里,因为浏览器直接转到局域网IP,而不是尝试连接到abc.com。 – caruizdiaz
等等呢?你从你的局域网ip重定向..捕获和重定向从那里,将有2个重定向。 –
对不起,我没有看到你的观点。如果我做window.location ='http://abc.com';发生重定向循环。如果我在另一个浏览器中做同样的事情,它就可以。 Chrome会记住重定向规则的时间太长。 – caruizdiaz
您可以使用JavaScript将浏览器历史记录中的该页面/网址从您的浏览器历史记录中删除。基于该http://www.w3schools.com/tags/att_meta_http_equiv.asp
以及当用户单击后退按钮上的浏览器,他将不会回到以前的页面,他/她登入]。
我该怎么做?AFAIK,它不能这样做。 – caruizdiaz
如果使用这些元标签页面不会被缓存既不通过浏览器,也不是代理服务器:
<meta http-equiv=”expires” content="Wed, 22 Jul 1981 16:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-store" />
<meta http-equiv="cache-control" content="no-cache" />
添加这是你的HTML头部 – chhameed
取决于你使用的浏览器。我推荐使用Web开发工具的FireFox禁用缓存,以更好地开发网站https://addons.mozilla.org/en-us/firefox/addon/web-developer/ –
它不适用于元标记。那是我第一次尝试。 – caruizdiaz