C# 从旧页面到新页面的多个301重定向的最佳实践

C# 从旧页面到新页面的多个301重定向的最佳实践,c#,.net,redirect,iis,seo,C#,.net,Redirect,Iis,Seo,我们最近对一个iis8,C#web站点进行了一次重大的站点重新设计。 我们有大约200到300个旧页面需要重定向到新页面。所有这些都需要301重定向搜索引擎优化 我们正在寻找一些最佳做法来做到这一点,而无需维护服务器上的物理文件 维护这些URL的数据库,这些URL最终可以在启动时加载到内存中 404处理程序检查该数据库中是否存在该页面,并执行重定向 我不知道有什么解决办法。。。在sitecore或Umbraco中,有一些插件可以通过示例实现这一点 但它工作得很好。。。如果替换了旧的URL,则不会

我们最近对一个iis8,C#web站点进行了一次重大的站点重新设计。 我们有大约200到300个旧页面需要重定向到新页面。所有这些都需要301重定向搜索引擎优化


我们正在寻找一些最佳做法来做到这一点,而无需维护服务器上的物理文件

维护这些URL的数据库,这些URL最终可以在启动时加载到内存中

404处理程序检查该数据库中是否存在该页面,并执行重定向

我不知道有什么解决办法。。。在sitecore或Umbraco中,有一些插件可以通过示例实现这一点

但它工作得很好。。。如果替换了旧的URL,则不会对其进行处理


您可以在以后扩展该系统,以维护一个包含您网站上调用的所有URL的数据库。。。引用数组(针对每个路径项):Url+当前Url,如果出于某种原因重命名某个项,则可以使用包含某个项的所有Url更新数据库。

IIS和.Net有几种重定向方法

在处理请求的代码中:

this.Response.RedirectPermanent("http://www.website.com/new-page/");
在web.config文件中(可能是最简单的方法):


它接受正则表达式,因此如果重定向有一个模式,您可以使用它


最后,您可以通过路由模块(System.Web.Routing.UrlRoutingModule)和您自己的IRouteHandler在基本级别上进行完全控制。

您可以执行htaccess重定向和通配符重定向吗?旧页面的URL和替换页面的URL之间是否存在共性?例如
http://foo.com/someResource/123
http://foo.com/otherResource/page123
?作为我最近用编程解决方案处理的一个问题,我不明白为什么这会吸引反对票/接近票。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="301 Redirect 1" stopProcessing="true">
          <match url="^old-page\.htm$" />
          <action type="Redirect" url="new-page" redirectType="Permanent" />
        </rule>
        <rule name="301 Redirect 2" stopProcessing="true">
          <match url="^old-page2\.htm$" />
          <action type="Redirect" url="new-page2" redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>