2014-11-05 42 views
1

我有一個使用MvcSiteMapProvider的網絡應用程序,但我不希望它服務器/ sitemap.xml每個頁面,但登錄頁面需要身份驗證,所以沒有必要公衆看我的網站地圖。MvcSiteMapProvider - 防止顯示/服務sitemap.xml

有沒有辦法關閉配置中的/sitemap.xml文件?或者使用RoutesConfig做到這一點?

回答

2

根據the documentation,如果使用內部DI,則可以使用MvcSiteMapProvider_EnableSitemapsXml設置禁用/sitemap.xml端點。

<appSettings> 
    <add key="MvcSiteMapProvider_EnableSitemapsXml" value="false"/> 
</appSettings> 

如果使用外部DI,你需要從/App_Start/MvcSiteMapProviderConfig.cs文件中刪除這一行(或其他地方,可能在你的應用程序啓動代碼存在)。

// Register the Sitemaps routes for search engines 
//XmlSiteMapController.RegisterRoutes(RouteTable.Routes); 

僅供參考 - 雖然此設置可以滿足您的要求,但實際上沒有問題。搜索引擎不掃描XML站點地圖文件的網站,他們必須明確提交。根據sitemap protocol,可以通過HTTP請求,搜索引擎控制面板或將位置添加到\robots.txt文件來提交它們。但是,如果沒有網站管理員的明確干預,這些都不會完成。在所有情況下,網站管理員都會選擇XML網站地圖將託管的網址。與\robots.txt文件不同,它沒有默認位置。我們選擇了最合理的邏輯路徑\sitemap.xml,但技術上它可以是任何東西。