2011-06-04 46 views
5

我想對我的網站進行一些更改,這需要一些URL重寫來保留我的舊網址。我無法使用正確的URL重寫,因爲我的託管服務提供商的控制非常有限。Server.Transfer對Google不可見嗎?

由於我使用的是ASP.NET,並且所有的頁面都有.aspx擴展名,我想到的一個想法是在Application_BeginRequest事件下的global.asax中添加一些內容。這可以檢查請求的頁面的URL是否是舊的URL,並使用Server.Transfer打開正確的頁面。

我的問題是,這是否會將此隱藏轉移給Google?我不希望我在Google中的排名受到影響。

+0

Server.Transfer的使用重定向服務器上那麼客戶端就會從你爲重定向的URL中獲得響應。如果你使用Server.Transfer,那麼他們會使用302那個 – Adrian 2011-06-04 09:00:17

+0

'Server.Transfer'對於Google來說是不可見的。服務器只會在請求的URL下提供目標內容,而不是重定向。如果抓取工具可以訪問這兩個網址,這可能會導致內容重複(糟糕的SEO)。 – 2011-06-04 09:09:53

+0

@Steven Spielberg:不,客戶端在使用Server.Transfer時不會獲得HTTP 302。查看Oded的答案 – 2011-06-04 09:11:58

回答

9

Server.Transfer完全在服務器端發生,所以任何客戶端(包括谷歌)都不會意識到它。

+0

因此,沒有302或任何內容向Google報告? – 2011-06-04 09:05:23

+1

@Andy:不,那將是'Response.Redirect'。 'Server.Transfer'完全在服務器內部。 – 2011-06-04 09:07:47

0

Google只是對頁面內容感到困擾,它並不打擾如何在Web服務器上構建內容。由於Server.Transfer完全是一個Web請求的內部,我認爲你應該沒問題,你的網站排名。

1

客戶端(瀏覽器或機器人)不知道Server.Transfer發生了什麼。它只會看到它請求了一個給定的URL並獲得了你返回的內容。客戶沒有回覆說你已經搬了東西(那將是Response.Redirect)。

在你的情況,這聽起來像這將意味着你將有兩個URL返回相同的內容  —兩個相同的頁面  —這可能會影響搜索索引如何對待內容(當然是指你會落得人們鏈接到這兩個網址,這可能會影響每個網址的排名)。

您可以通過指定內容的規範網址來解決該問題。更this Google blog post,但基本上,如果你有兩個http://example.com/foo.aspxhttp://example.com/bar.aspx返回相同的內容,並且要規範(官方)網址是http://example.com/bar.aspx,告訴該索引:

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