1

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

我们目前的网址是这样的:

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

我们的URL看起来是这样的:

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

谷歌仍然有索引的 URL的负荷,但我们显然希望他们知道,他们应该与我们较新的(而且它不只是重复的内容),因此301个重定向来代替。

我们的问题是,显然动态创建了新URL的<Brand><Product Name>部分...使得无法为它们创建301重定向。

它不可能?

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

+0

你能发表正在使用的正则表达式规则吗? 2010-03-02 18:05:20

回答

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" /> 
1

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

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

感谢您的回复,但是网页只是重定向自己,即使它被新网址调用而不是旧网址。有关如何阻止这种情况发生的任何想法? – 2010-03-01 20:04:55

+0

只尝试重做,如果它来自旧网址。 – bkaid 2010-03-01 20:13:10

+0

是的,我想知道如何去做这件事?谢谢。 – 2010-03-01 20:19:14