重定向ASP包括页面而不循环

时间:2012-09-25 22:41:44

标签: ajax redirect asp-classic infinite-loop

我确信有一个简单的解决方案:

我们有一个ASP页面,它使用Ajax让用户浏览内容。我们的问题是,当Google抓取我们的网站时,它会将搜索结果链接到未设置样式的内容页面。我们希望能够将流量从内容页面重定向到调用它们的样式化页面。如何在不将页面发送到无限重定向循环的情况下完成此操作?

我们已经考虑过我们问题的其他解决方案,但这是我们想要实现的目标;将.ASP页面重定向到包含它们的页面,而不将它们发送到循环中。当然,任何人都有任何我们尚未考虑的建议。

我已经浪费了整整一天的时间,试图找到一个在ASP中运行的解决方案而没有任何运气,我可能会在明天做同样的事情......期待任何建议,谢谢。

1 个答案:

答案 0 :(得分:2)

当然有助于查看代码,或者知道实时网址,但这里有...

我认为你已经有代码来进行重定向,你只需要一个系统来知道何时重定向,何时不知道?

一些建议:

  • 检查内容页面中的引荐来源,如果不是您的AJAX请求,则执行重定向(不确定您的AJAX代码是否会填充引荐来源,如果不是,那么如果有引荐来源作为搜索,则进行重定向引擎总是有引用者)
  • 调用ASP页面时存储一个Session变量,并检查它是否存在于内容页面中,如果不存在重定向
  • 在调用ASP页面时存储Cookie,并检查它是否存在于内容页面中,如果没有,则执行重定向
  • 将您的AJAX请求更改为表单POST而不是GET,如果不是POST则更改内容页面然后执行重定向

修改 我没想到的一件事是,如果您使用我的任何建议,搜索引擎可能无法抓取这些页面,因此我还建议您添加用户代理检查以允许抓取工具

看了你的代码后,我会将以下内容添加到ASP无样式页面的顶部。

strAgents = "Google|msnbot|Rambler|Yahoo|AbachoBOT|accoona|AcioRobot|ASPSeek|CocoCrawler|Dumbot|FAST-WebCrawler|GeonaBot|Gigabot|Lycos|MSRBOT|Scooter|AltaVista|IDBot|eStyle|Scrubby"
arrAgents = Split(strAgents, "|")
blnAgent = False
For i = 0 to UBound(arrAgents)
    If InStr(Request.ServerVariables("HTTP_USER_AGENT"), arrAgents(i)) <> 0 Then
        blnAgent = True
        Exit For
    End If
Next

If Not blnAgent Then
    If Request.ServerVariables("HTTP_REFERER") <> "http://www.uleth.ca/lib/archives/timeline/" Then
        Response.Redirect("http://www.uleth.ca/lib/archives/timeline/#19xx?zoom_highlight=19xx")
    End If
End If