用IIS7和URL Rewrite “修复”SharePoint 的302转向问题

用SharePoint 2007做外网网站的时候最大的问题是搜索引擎优化(SEO)。当默认访问http://yoursharepointsite.com 时,请求会被自动转向到/pages/default.aspx。问题在于,SharePoint使用302 Redirect而不是301进行转向,这就导致搜索引擎对这种站点不能很好的索引。如下图:

snap006 

 

解决办法在网上可以搜到很多,但绝大部分都要开发一个HttpModule进行重新跳转。这种模式大部分人其实并不买账,自定制开发的代码如果有问题怎么办? 为什么我不能只用设置解决问题呢?

如果你把SharePoint装在IIS7上,这的确不是什么问题。我们可以用URL Rewrite解决。首先下载http://www.iis.net/extensions/URLRewrite,安装,然后在IIS管理器里面选择相应的站点,可以看到多了一个URL Rewrite。

snap007

 

双击打开URL Rewrite的设置,增加一条规则:用正则表达式匹配^$(空字串),然后设置操作为重定向URL,写入要定向的URL(Pages/default.aspx),然后设置类型为301。

snap005

 

现在,清除浏览器缓存,再访问站点看看?

snap004

成功的改成了301。很简单吧?

以上只适用于Windows Server 2008+。2003/IIS6怎么办?自己写httpmodule或者找一个第三方的rewrite ISAPI插件。