【问题标题】:Best practise for multiple 301 redirects from old to new pages从旧页面到新页面的多次 301 重定向的最佳实践
【发布时间】:2015-06-22 01:16:03
【问题描述】:

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

我们正在寻找一些最佳做法来执行此操作,而无需维护服务器上的物理文件。

【问题讨论】:

  • 你能做 htaccess 重定向和通配符重定向吗?
  • 旧页面的 URL 和替换页面的 URL 是否有共同点?例如http://foo.com/someResource/123http://foo.com/otherResource/page123?
  • 作为我最近处理的程序化解决方案的一个问题,我不明白为什么这会吸引反对票/关闭票。

标签: c# .net redirect iis seo


【解决方案1】:

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

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

我不知道任何解决方案...在 sitecore 或 Umbraco 中,有一些插件可以通过示例来执行此操作。

但它很好用……如果旧的 URL 被替换,那么它将不会被处理。

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

【讨论】:

    【解决方案2】:

    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 在基本级别进行完全控制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-11
      • 2012-03-01
      • 2017-01-08
      • 2012-06-12
      • 1970-01-01
      • 1970-01-01
      • 2018-02-07
      相关资源
      最近更新 更多