【问题标题】:Is Server.Transfer invisible to Google?Server.Transfer 对 Google 不可见吗?
【发布时间】:2011-06-04 08:56:18
【问题描述】:

我想对我的网站进行一些更改,这需要重写一些 URL 以保留我的旧 URL。我无法使用正确的 URL 重写,因为我对托管服务提供商的控制非常有限。

由于我使用的是 ASP.NET 并且我的所有页面都具有 .aspx 扩展名,因此我的一个想法是在 Application_BeginRequest 事件下的 global.asax 中放置一些内容。这可以检查所请求页面的 URL 是否是旧的 URL 之一,并使用 Server.Transfer 打开正确的页面。

我的问题是,这是否会将这种不可见的信息转移给 Google?我不希望我在 Google 中的排名受到影响。

【问题讨论】:

  • Server.Transfer 在服务器端使用重定向,然后客户端从您放置用于重定向的 url 获得响应。如果您使用 Server.Transfer,他们会使用 302
  • Server.Transfer 对 Google 是不可见的。服务器将简单地在请求的 URL 下提供目标内容,而不是重定向。如果爬虫可以访问两个 URL,这可能会导致内容重复(SEO 不佳)。
  • @Steven Spielberg:不,客户端在使用 Server.Transfer 时不会获得 HTTP 302。查看 Oded 的答案

标签: asp.net


【解决方案1】:

Server.Transfer 完全发生在服务器端,因此任何客户端(包括 Google)都不会意识到这一点。

【讨论】:

  • 所以没有向 Google 报告 302 或任何内容?
  • @Andy:不,应该是Response.Redirect。 Server.Transfer 完全在服务器内部。
【解决方案2】:

客户端(浏览器或机器人)不会知道Server.Transfer 的发生。它只会看到它请求了一个给定的 URL 并获得了您返回的内容。没有回复客户说您已移动东西(即Response.Redirect)。

在您的情况下,这听起来意味着您将有两个 URL 返回相同的内容 - 两个相同的页面 - 这可能会影响搜索索引如何处理内容(当然意味着您最终会得到链接到的人两个 URL,这可能会影响每个 URL 的排名)。

您可以通过指定内容的规范 URL 来解决这个问题。 this Google blog post 中有更多内容,但基本上,如果 http://example.com/foo.aspx 和 http://example.com/bar.aspx 返回相同的内容,并且您希望规范(官方)URL 为 http://example.com/bar.aspx,请告诉索引器:

<link rel="canonical" href="http://example.com/bar.aspx" />

【讨论】:

    【解决方案3】:

    Google 只关心页面内容,它不关心内容是如何在网络服务器上构建的。由于 Server.Transfer 完全是网络请求内部的,我认为你应该对你的网站排名没问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-28
      • 2010-10-24
      • 2013-09-03
      • 2011-12-12
      • 1970-01-01
      • 2021-02-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多