为单个网站提供6万个“301”和“200”redirect的好方法是什么?

这组redirect不是静态的。 我们将每天增加和删除redirect十几次。

我们恰好使用了内置了redirectfunction的CMS(DotNetNuke),但每次添加或删除redirect时都必须重新构build各种caching,这在添加或删除redirect时会导致一些痛苦的性能问题。

我已经看过IISredirect。 但是,这些redirect存储在网站的web.config中。 在实时站点操作期间每天修改web.config十次以上redirect感觉不对。 在单个web.config中有这么多的redirect也是错误的。

我怀疑可能有IISredirect的替代存储方法,或者有另一种方法,我不知道。

对于那些有兴趣也许让我相信我们不需要那么多redirect的人,我希望你是对的。 这里有一些细节:

我们有30,000个旧的产品页面,每个页面都有自己的URL。

我们有30,000个新产品url。

我们有一个带查询string参数的新产品页面。 Products.aspx?PRODID = 123456

redirect过程将如下所示:

OldProductURL1.PHP --301--> Products.aspx?ProdID=1 --200--> NewProductURL1.aspx 

要么

  OldPRoductURL1.PHP --301--> NewProductURL1.aspx 

(只要服务器运行Products.aspx?ProdID = 1来提供此页面)

有没有一个很好的方法来实现这一点,这将允许我们添加和删除redirect而不影响现场的性能显着?

你有没有考虑一个自定义404error handling程序在IIS中找不到页面后进行翻译? 然后你可以做数据库查找或任何需要做的翻译。