我们最近为IIS 8,C#网站重新设计了一个主要网站。 我们有大约2到300个旧页面,需要重定向到新页面。所有这些都需要301重定向到SEO。
我们正在寻找一些最佳实践,而无需维护服务器上的物理文件。
答案 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在基础级别进行完全控制。