草庐IT

asp.net - 当 url 导致临时重定向 (http 302) 时,索引的内容是什么?

coder 2024-02-27 原文

我正在努力使我们的(非常基于 AJAX 的)网站对搜索引擎更加友好。

我们有一个系统,在设置 session 变量以更改主页的行为后,某些 url 重定向到主页。这是通过使用 Controller.Redirect 方法创建 ActionResult 来实现的。

例如,主页是:

http://radiotuna.com

但是如果我们想链接到一个广播电台,我们使用:

http://radiotuna.com/s/66258

重定向到主页。然而,在这种情况下,由于在重定向之前设置的 Session 变量,显示的内容有所不同。

当出现这个重定向时,网络爬虫将索引什么?

这种情况下Session会被保留吗?

据我所知,有几种可能的结果:

  1. 爬虫遵循重定向, session 信息被保留,爬取的数据与http://radiotuna.com/s/66258相关联(期望的结果)
  2. 抓取工具不遵循重定向。如果我们可以发送带有 302 的页面,那就没问题了。这是允许的吗?
  3. 爬虫遵循重定向, session 信息被保留,爬取的数据与http://radiotuna.com/相关联(不好)
  4. 爬虫遵循重定向,但 session 信息被丢弃,因此主要(未修改的页面)与 http://radiotuna.com/s/66258 相关联(不好)

也许 302 是发送回的错误状态。也许在这种情况下使用重定向的想法是有缺陷的。谁能赐教一下?

编辑:我们为什么要这样做?理想情况下,我们希望地址栏中只出现一个 URL,因此我们希望始终重定向到主页。当来自重定向时,这将导致不同的标题和元描述,这正是我们希望被抓取工具拾取并与重定向前的 url 相关联的内容。

EDIT2:在这种情况下,检测我们是否被爬虫攻击并在没有重定向的情况下传送页面会更好吗?如何检测爬虫客户端?

最佳答案

您真的应该考虑创建一个 xml 站点地图并将其提交给主要的搜索引擎。您可以创建像 radiotuna.com/kmtt(我的本地电台)这样的 url,这样对于在结果中看到该 url 的人来说就意味着一些东西。在您的 Controller 中很容易处理。

至于索引的内容,搜索引擎很挑剔。如果您发送“永久移动”,那么大多数引擎会记录他们找到的 URL,并在内部用您的新地址更新它。但是为什么要依赖他们呢?最好自己动手并自己控制。

关于asp.net - 当 url 导致临时重定向 (http 302) 时,索引的内容是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2006397/

有关asp.net - 当 url 导致临时重定向 (http 302) 时,索引的内容是什么?的更多相关文章

  1. ruby-on-rails - Ruby net/ldap 模块中的内存泄漏 - 2

    作为我的Rails应用程序的一部分,我编写了一个小导入程序,它从我们的LDAP系统中吸取数据并将其塞入一个用户表中。不幸的是,与LDAP相关的代码在遍历我们的32K用户时泄漏了大量内存,我一直无法弄清楚如何解决这个问题。这个问题似乎在某种程度上与LDAP库有关,因为当我删除对LDAP内容的调用时,内存使用情况会很好地稳定下来。此外,不断增加的对象是Net::BER::BerIdentifiedString和Net::BER::BerIdentifiedArray,它们都是LDAP库的一部分。当我运行导入时,内存使用量最终达到超过1GB的峰值。如果问题存在,我需要找到一些方法来更正我的代

  2. ruby - 将数组的内容转换为 int - 2

    我需要读入一个包含数字列表的文件。此代码读取文件并将其放入二维数组中。现在我需要获取数组中所有数字的平均值,但我需要将数组的内容更改为int。有什么想法可以将to_i方法放在哪里吗?ClassTerraindefinitializefile_name@input=IO.readlines(file_name)#readinfile@size=@input[0].to_i@land=[@size]x=1whilex 最佳答案 只需将数组映射为整数:@land边注如果你想得到一条线的平均值,你可以这样做:values=@input[x]

  3. ruby - 如何模拟 Net::HTTP::Post? - 2

    是的,我知道最好使用webmock,但我想知道如何在RSpec中模拟此方法:defmethod_to_testurl=URI.parseurireq=Net::HTTP::Post.newurl.pathres=Net::HTTP.start(url.host,url.port)do|http|http.requestreq,foo:1endresend这是RSpec:let(:uri){'http://example.com'}specify'HTTPcall'dohttp=mock:httpNet::HTTP.stub!(:start).and_yieldhttphttp.shou

  4. ruby-on-rails - rails : save file from URL and save it to Amazon S3 - 2

    从给定URL下载文件并立即将其上传到AmazonS3的更直接的方法是什么(+将有关文件的一些信息保存到数据库中,例如名称、大小等)?现在,我既不使用Paperclip,也不使用Carrierwave。谢谢 最佳答案 简单明了:require'open-uri'require's3'amazon=S3::Service.new(access_key_id:'KEY',secret_access_key:'KEY')bucket=amazon.buckets.find('image_storage')url='http://www.ex

  5. ruby - 如何使用 Ruby aws/s3 Gem 生成安全 URL 以从 s3 下载文件 - 2

    我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A

  6. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  7. ruby-on-rails - Ruby url 到 html 链接转换 - 2

    我正在使用Rails构建一个简单的聊天应用程序。当用户输入url时,我希望将其输出为html链接(即“url”)。我想知道在Ruby中是否有任何库或众所周知的方法可以做到这一点。如果没有,我有一些不错的正则表达式示例代码可以使用... 最佳答案 查看auto_linkRails提供的辅助方法。这会将所有URL和电子邮件地址变成可点击的链接(htmlanchor标记)。这是文档中的代码示例。auto_link("Gotohttp://www.rubyonrails.organdsayhellotodavid@loudthinking.

  8. ruby - 查找字符串中的内容类型(数字、日期、时间、字符串等) - 2

    我正在尝试解析一个CSV文件并使用SQL命令自动为其创建一个表。CSV中的第一行给出了列标题。但我需要推断每个列的类型。Ruby中是否有任何函数可以找到每个字段中内容的类型。例如,CSV行:"12012","Test","1233.22","12:21:22","10/10/2009"应该产生像这样的类型['integer','string','float','time','date']谢谢! 最佳答案 require'time'defto_something(str)if(num=Integer(str)rescueFloat(s

  9. ruby - Net::HTTP 获取源代码和状态 - 2

    我目前正在使用以下方法获取页面的源代码:Net::HTTP.get(URI.parse(page.url))我还想获取HTTP状态,而无需发出第二个请求。有没有办法用另一种方法做到这一点?我一直在查看文档,但似乎找不到我要找的东西。 最佳答案 在我看来,除非您需要一些真正的低级访问或控制,否则最好使用Ruby的内置Open::URI模块:require'open-uri'io=open('http://www.example.org/')#=>#body=io.read[0,50]#=>"["200","OK"]io.base_ur

  10. ruby-on-rails - 如何生成传递一些自定义参数的 `link_to` URL? - 2

    我正在使用RubyonRails3.0.9,我想生成一个传递一些自定义参数的link_toURL。也就是说,有一个articles_path(www.my_web_site_name.com/articles)我想生成如下内容:link_to'Samplelinktitle',...#HereIshouldimplementthecode#=>'http://www.my_web_site_name.com/articles?param1=value1¶m2=value2&...我如何编写link_to语句“alàRubyonRailsWay”以实现该目的?如果我想通过传递一些

随机推荐