Asp classic Request.ServerVariables(“HTTP”u REFERER“)在IE中不起作用

Asp classic Request.ServerVariables(“HTTP”u REFERER“)在IE中不起作用,asp-classic,http-headers,http-referer,Asp Classic,Http Headers,Http Referer,Request.ServerVariables(“HTTP\u REFERER”)在Internet Explorer中不起作用 我们有一个要求,比如说,有两个不同的网站,www.example1.com和www.example2.com。我必须将所有使用www.example1.com的用户重定向到www.example2.com,当我们在www.example2.com的下拉列表中有意选择www.example1.com时,它应该在没有任何重定向的情况下打开 为此,我在www.example

Request.ServerVariables(“HTTP\u 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)提供与上述结果类似的等效代码。

您不能依赖HTTP\u REFERER的存在:用户代理不需要设置它

尝试改用
HTTP\u HOST
:从HTTP 1.1开始,主机头是必需的

If (Request.ServerVariables("HTTP_HOST") <> "www.example2.org") Then
If(Request.ServerVariables(“HTTP_HOST”)“www.example2.org”)然后

请查看下面的链接,该链接表示HTTP\u REFERER不是HTTP规范的强制性成员

您可以使用服务器变量server_NAME满足您的需求,它应该可以工作


快乐编码

非常感谢您的建议,请您具体说明主机头是什么,以及它对我有什么帮助。@Praveen:这里有一个标题列表-。简而言之,
Host
头应该包含用于访问该页面的域名。注意:我使用了HTTP\U主机,但它获取的是当前页面的主机名。我需要一个要求,就像我需要请求页面的确切域名一样。HTTP_REFERER呈现精确的输出,但在IE中不起作用。您能否指定任何方法,该方法适用于所有需要实际输出的浏览器。@Praveen:域名是主机名。你是说你需要完整的url,而不仅仅是域名吗?是的,卢克,你是赖特!。。我的意思是说请求页面的完整url。您会建议任何适用于所有浏览器的方法吗。@Ravia:谢谢您的建议,SERVER\u NAME只返回服务器名称,我需要一个要求,比如我想要请求页面的确切服务器名称,您能建议任何方法吗?如果您知道服务器的IP地址,您可以使用REMOTE\u ADDR或尝试REQUEST\u URI。