不要在SharePoint中开启urlMappings, 会阻碍搜索功能中的爬网

什么是urlMappings?

=================

根据MSDN的定义, urlMappings定义了一种URL之间的映射关系, 通过这种映射可以把一个真实的URL映射为一个看起来更加用户友好的URL.

可以在web.config中添加如下的段落来开启这个功能.

举例:

<urlMappings enabled="true">

  <clear />

  <add url="~/Home.aspx" mappedUrl="~/Default.aspx?tab=home" />

  <remove url="~/Home2.aspx" />

</urlMappings>

 

在SharePoint站点中开启这个有什么影响?

==================

开启了这个功能之后, SharePoint的爬网会出错. 如果被映射的是首页, 那么会导致整个web application爬网瘫痪.

笔者在web.config中添加了下面的一段. 其中/pages/testpages.aspx甚至都不是站点的首页, 都能引起下面述及的问题.

image

 

从crawl log中看, 好像东西都还在, 其实从上次被crawl的时间可以看出来, web application中的内容, 并没有被重新爬过. 开启了urlMapping的站点, 在SSP中Reset了Index后, 爬网的截图如下:

image

 

查看爬网日志, 可以发现错误信息如下:

"Error in the Site Data Web Service."

image

 

修复:

去掉urlMapping后, 爬网结果如下:

image

 

image

 

为什么会这样?

=============

虽然SharePoint是基于ASP.NET的产品, 但是在搜索, 爬网一块的特性上, SharePoint的处理是有自己的规则的.

urlMappings实际上修改了SharePoint默认的redirect的行为, 映射的URL需要被SharePoint拿来再进行下一步的爬网动作.

所以, 自己写HttpModule也好, urlMappings也好, 尽量不要修改SharePoint的redirect规则. 如果修改了, 请尽可能贴近SharePoint默认的一些规则:

然后请测试一下爬网是否还能正常工作.

否则, 一旦爬网出现问题, 如果是由于这样的修改引起的, 排查起来就比较困难了.

 

urlMappings Element (ASP.NET Settings Schema)

http://msdn.microsoft.com/en-us/library/ms228302.aspx

你可能感兴趣的:(SharePoint)