Request.ServerVariables(“HTTP_REFERER”)在Internet Explorer中不起作用。
我们有一个要求,有两个不同的网站,www.example1.com和www.example2.com。我必须将使用www.example1.com的所有用户重定向到www.example2.com,当我们故意在www.example2.com的下拉列表中选择www.example1.com时,它必须在没有任何重定向的情况下打开。
为此,我在www.example1.com中使用了Request.ServerVariables(“HTTP_REFERER”),以便根据我应用的重定向识别谁在请求www.example1.com。这在所有标准浏览器(如Mozilla和Google Chrome)中都很有用,但不适用于Internet Explorer。
我在www.example1.com上使用了以下ASP代码
<%if(Request.ServerVariables("HTTP_REFERER") <> "http://www.example2.org/") then
URL = "http://api.ipinfodb.com/v3/ip-country/?key=c184c2d089c7763a81d7701a662b57fe3bf90dbfd8bf60d29948878531e24472&ip=" & Request.ServerVariables("REMOTE_ADDR")
Set conn = Server.CreateObject("MSXML2.ServerXMLHTTP")
conn.open "GET", URL, False, "", ""
conn.send
UserCountry = conn.ResponseText
conArray = Split(UserCountry, ";")
if ((conArray(3) = "US")) Then
response.redirect("http://www.example2.org/")
end if
end if
%>
除了IE之外,它在所有浏览器中都运行良好。任何人都可以知道吗?你能否告诉我所有浏览器(包括IE)的等效代码,它会给出与上述类似的结果。
答案 0 :(得分:2)
您不能依赖HTTP_REFERER
存在:用户代理不需要设置它。
请尝试使用HTTP_HOST
:自HTTP 1.1以来,主机标头是必需的。
If (Request.ServerVariables("HTTP_HOST") <> "www.example2.org") Then
答案 1 :(得分:0)
请查看下面的链接,其中说HTTP_REFERER不是HTTP规范的强制成员。
您可以根据需要使用服务器变量SERVER_NAME,它应该可以使用。
快乐的编码!!