在IIS 6中维护和pipe理快速URL重写的最佳方法是什么?

我们有一些url需要重新编写用于search引擎优化的目的,名单变得相当长。

我想知道一些好的URL重写策略,以便我们可以保留旧的URL,但是301将它们redirect到SEO友好的URL。 您所使用的URL重写系统的性能影响是什么?

如果您具有对服务器的pipe理访问权限,则可以使用ISAPI_Rewrite 。 这是您在IIS6configuration中设置的ISAPI筛选器。 有一个付费和免费版本 – 我只使用免费版本。

我已经在一些网站上使用它来做你想做的事情,我看不到任何性能问题(尽pipe我还没有正式testing过)。

要设置redirect,您可以为每个redirect的URL添加一个条目到ISAPI_Rewrite .ini文件中。 这个语法和Apache的mod_rewrite非常相似 – 但不完全一样。

来自ISAPI_Rewrite网站的例子:

# Translate my-super.product.html to /Product.aspx?ProductID=123 RewriteRule ^/my-super-product\.html$ /Product.aspx?ProductID=123 # Rewrite numeric URLs RewriteRule ^/Products/P([0-9]+)\.html$ /Product.aspx?ProductID=$1 [L] 

您应该查阅文档以获得更全面的使用案例。

IIRF工作,在C中作为ISAPIfilter实施,速度非常快。 免费 。 可以做301redirect以及重写。 (有时两个,相同的URL)。

它包括一个安装程序和CHM doc:

替代文字http://i48.tinypic.com/29oplso.jpg

尽pipe我们使用的是Apache而不是IIS,但是我们对大量的redirect却有类似的性能担忧。 我们实现了以下系统:

任何需要redirect的页面通常会生成404 Not Found错误,因为它们不再存在,所以我们只处理404上的重写。 这意味着我们对于常规请求没有任何性能损失。

一旦一个页面产生一个404,我们将请求传递给我们的404控制器,它会检查一个(caching的)数据库表并将一个redirect头呈现给浏览器。 如果找不到匹配的页面,我们将呈现常规的404页面。

由于redirect存储在表中,我们可以将它们集成到我们的cms中,例如,提供一个选项来pipe理页面属性中的所有redirect到页面。 或自动检查指向不存在页面的redirect。