使用动态网址设置301重定向

时间:2010-03-01 19:32:20

标签: asp.net iis-7 web-config windows-server-2008 http-status-code-301

我猜这实际上是一项不可能完成的任务,但我想我会通过StackOverflow来运行它,看看我是不是错了。基本上我们有一些动态创建的URL用于搜索引擎优化目的(大约300,000多个),我们想要 301重定向给他们。

我们当前的网址如下所示:

  

http://www.site.com/ <Brand> / <Product Name> / <productGuid>

我们的网址如下所示:

  

http://www.site.com/productpage.aspx?productGUID= <productGuid>

Google仍有大量网址被编入索引,但我们显然希望他们知道应该将它们替换为我们较新的网址(并且它不仅仅是重复的内容),因此301重定向。

我们的问题是,新网址的<Brand><Product Name>部分显然是动态创建的......因此无法为其创建301重定向。

不可能?

感谢您提供有关我们如何让Google开始将其索引网址更新为新网址的任何想法或建议。

2 个答案:

答案 0 :(得分:1)

在productpage.aspx页面的代码中,设置Response.StatusCode和Response.RedirectLocation并结束响应。

Response.StatusCode = 301;
Response.RedirectLocation = "http://www.site.com/<Brand>/<Product Name>/<productGuid>";
Response.End();

答案 1 :(得分:1)

为您的产品页面创建一个新的内部名称,例如:ProductPageInternal.aspx。

将所有ProductPage.aspx流量重写为Redirect.aspx页面,其中包含301重定向代码到新的,漂亮的网址。(thekaido的想法)

将所有新网址重写为ProductPageInternal.aspx。

<rewrite url="~/ProductPage.aspx?GUID=(.+)" to="~/Redirect.aspx?productGUID=$1" /> 
<rewrite url="~/(.+)/(.+)/(.+)" to="~/productpageInternal.aspx?productGUID=$3" />