0

我在 IIS 中将错误页面设置为 httpRedirect.htm,当捕获到错误 403.4 时,尝试将任何 http 请求转换为 https。

因此,如果用户在浏览器中键入 http url,它会触发 httpRedirect.htm 页面并获取此 url,将 http 替换为 https,然后重定向到此新 url。我希望这发生在 javascript 中。

但是,当我在 httpRedirect.htm 中使用 document.referrer 时,我发现它总是返回空白。

这种情况有什么特别的考虑吗?使用这个错误页面的浏览器可以携带上一个请求的信息吗?

4

1 回答 1

0

您将不得不查看位置对象。重定向在服务器端。

场景:

  1. 你直接去http://example.com/index.html,然后 httpRedirect.htm 被渲染。由于这是您访问的第一页,因此引荐来源网址为空。
  2. 您位于http://test.com/index.html并单击指向 http://example.com/index.html的链接。您现在看到的是 httpRedirect.html,但引用者是之前的页面,即 http://test.com/index.html

由于引荐来源网址取决于您的浏览器,因此您根本无法确定引荐来源网址对象中有任何内容,即使它“应该”存在。一些防火墙和防病毒应用程序可能伪装得很好。

如果您在http://example.com/index.html并看到 httpRedirect.htm,那么 location.href 仍然是http://example.com/index.html

您可以在此处查看一些使用位置的示例代码:http: //kloudgate.wordpress.com/2013/05/30/how-to-redirect-http-to-https-using-iis7-0/

于 2013-07-17T17:28:05.663 回答