2012-09-11 161 views
0

我正在为使用Linux + iptables的用户尝试访问任何网页时重定向到登录页面的局域网编写一个Internet访问工具。该登录页面要求输入用户名和密码,如果身份验证成功,则会删除iptables规则,以便后续请求转到最初预期的网页。浏览器的重定向

情况是这样的:

  1. 如果我去http://www.abc.com,我的默认网关重定向我10.0.10.10/login.php
  2. 我成功登录。
  3. 如果我再次尝试去http://www.abc.com,浏览器会自动将我发送回10.0.10.10,这就像某种缓存。
  4. 如果我尝试进入除abc.com以外的其他页面,则按预期工作。

我该如何告诉浏览器删除重定向的“记忆”规则?

+0

添加这是你的HTML头部 – chhameed

+0

取决于你使用的浏览器。我推荐使用Web开发工具的FireFox禁用缓存,以更好地开发网站https://addons.mozilla.org/en-us/firefox/addon/web-developer/ –

+0

它不适用于元标记。那是我第一次尝试。 – caruizdiaz

回答

1

您需要硬刷新缓存。

通常你可以做到这一点与CTRL + F5CTRL + [R

或更改您的规则,使第二重定向到相同的页面,但与一些#片段标识符

例如:如果用户输入abc.com并在登录时被重定向,如果他再次尝试登录abc.com,并且您看到他已登录将他重定向到abc.com#1

+0

问题是,我看不到用户打算去哪里,因为浏览器直接转到局域网IP,而不是尝试连接到abc.com。 – caruizdiaz

+0

等等呢?你从你的局域网ip重定向..捕获和重定向从那里,将有2个重定向。 –

+0

对不起,我没有看到你的观点。如果我做window.location ='http://abc.com';发生重定向循环。如果我在另一个浏览器中做同样的事情,它就可以。 Chrome会记住重定向规则的时间太长。 – caruizdiaz

0

您可以使用JavaScript将浏览器历史记录中的该页面/网址从您的浏览器历史记录中删除。基于该http://www.w3schools.com/tags/att_meta_http_equiv.asp

以及当用户单击后退按钮上的浏览器,他将不会回到以前的页面,他/她登入]。

+0

我该怎么做?AFAIK,它不能这样做。 – caruizdiaz

3

如果使用这些元标签页面不会被缓存既不通过浏览器,也不是代理服务器:

<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" />