0

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

这是这种情况:

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

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

4

3 回答 3

3

基于http://www.w3schools.com/tags/att_meta_http_equiv.asp

如果您使用这些元标记页面不会被浏览器或代理服务器缓存:

<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" />
于 2012-09-11T14:24:18.487 回答
1

您需要硬刷新缓存。

通常你可以用CTRL+F5CTRL+R

或者您更改规则以使第二次重定向到同一页面但带有一些#片段标识符

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

于 2012-09-11T13:55:09.937 回答
0

您可以使用 javascript 从浏览器历史记录中删除该页面/url,这将完成您需要的操作。而且当用户点击浏览器上的后退按钮时,他将不会回到他/她登录的上一个页面。

于 2012-09-11T14:04:23.940 回答