从旧页面到新页面的多个 301 重定向的最佳实践
Best practise for multiple 301 redirects from old to new pages
我们最近对 IIS 8、C# 网站进行了一次大型网站重新设计。
我们有大约 2 到 300 个旧页面需要重定向到新页面。所有这些都需要是 SEO 的 301 重定向。
我们正在寻找一些最佳做法来执行此操作,而无需在服务器上维护物理文件。
维护那些 URLS 的数据库,最终可以在启动时加载到内存中。
404 处理程序检查该页面是否存在于该数据库中,并执行重定向。
我不知道有什么解决方案...在 sitecore 或 Umbraco 中,有一些插件可以通过示例来执行此操作。
不过效果很好...如果旧的URL换掉了,那就不用处理了。
您甚至可以在以后扩展该系统,以维护您网站上调用的所有 url 的数据库...引用数组(对于每个路径项):Url + 当前 URl,如果出于某种原因您重命名了一个项目,那么您可以使用包含该项目的所有 URLS 更新您的数据库。
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 在基本级别进行完全控制。
我们最近对 IIS 8、C# 网站进行了一次大型网站重新设计。 我们有大约 2 到 300 个旧页面需要重定向到新页面。所有这些都需要是 SEO 的 301 重定向。
我们正在寻找一些最佳做法来执行此操作,而无需在服务器上维护物理文件。
维护那些 URLS 的数据库,最终可以在启动时加载到内存中。
404 处理程序检查该页面是否存在于该数据库中,并执行重定向。
我不知道有什么解决方案...在 sitecore 或 Umbraco 中,有一些插件可以通过示例来执行此操作。
不过效果很好...如果旧的URL换掉了,那就不用处理了。
您甚至可以在以后扩展该系统,以维护您网站上调用的所有 url 的数据库...引用数组(对于每个路径项):Url + 当前 URl,如果出于某种原因您重命名了一个项目,那么您可以使用包含该项目的所有 URLS 更新您的数据库。
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 在基本级别进行完全控制。