我猜这实际上是一项不可能完成的任务,但我想我会通过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开始将其索引网址更新为新网址的任何想法或建议。
答案 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" />