It’s not every day that you find needle in a haystack, but when you do it’s worth blogging for prosperity…
My customer has set up SharePoint 2013 as the central search authority for their organization and uses it to crawl non-SharePoint sites as well as SharePoint. We noticed that SharePoint was not crawling links in Cold Fusion pages (.cfm). Instead, the crawler was treating CFM pages as text and stopping at the top-most levels without indexing lower-level pages.
We noticed in testing that renaming CFM to HTML extension fixed the issue, but wasn’t sustainable for the vast number of CF sites in the organization.
For the longest time I was messing around with the New-SPEnterpriseSearchFileFormat cmdlet, urging SharePoint to treat CFM pages the same as HTML. What I determined is this cmdlet is good for mapping custom extensions to Windows platform IFilters. What I wanted to do was to mimic the crawler indexing HTML pages, which does not use Windows IFilters. After much perseverance, I found the following information (included below, incase the link goes away):
# To check the current settings for filtering extensions, run the following command lines: $ssa = Get-SPEnterpriseSearchServiceApplication "Search Service Application" $ssa.GetProperty("ExtensionsToFilter") # Here's the default output that you'll receive: #;ascx;asp;aspx;htm;html;jhtml;jsp;mht;php; #To add the .cfm extension to the property, run the following commands: $ssa.SetProperty("ExtensionsToFilter", ";ascx;asp;aspx;htm;html;jhtml;jsp;mht;php;cfm;") $ssa.Update() # To restart the search functionality on a crawler when no crawling is occurring, run the following commands: net stop osearch15 net start osearch15