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

时间:2015-04-15 21:15:15

标签: c# .net redirect iis seo

我们最近为IIS 8,C#网站重新设计了一个主要网站。 我们有大约2到300个旧页面,需要重定向到新页面。所有这些都需要301重定向到SEO。

我们正在寻找一些最佳实践,而无需维护服务器上的物理文件。

2 个答案:

答案 0 :(得分:0)

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

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

我不知道这方面的任何解决方案......在sitecore或Umbraco中,有一些插件可以通过示例来做到这一点。

但它的效果很好......如果替换旧的URL,则无法处理。

你甚至可以扩展该系统,以维护你网站上调用的所有网址的数据库......参考数组(针对每个路径项):网址+当前URl,如果由于某种原因你重命名一个项目,然后您可以使用包含某个项目的所有URL更新您的数据库。

答案 1 :(得分:0)

IIS和.Net有几种方法可以进行重定向。

在递交请求的代码中:

this.Response.RedirectPermanent("http://www.website.com/new-page/");

在web.config文件中(可能是最简单的方法):

<?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> 

它接受正则表达式,所以如果重定向有一个模式,你可以乐观。

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