我有一個使用MvcSiteMapProvider的網絡應用程序,但我不希望它服務器/ sitemap.xml每個頁面,但登錄頁面需要身份驗證,所以沒有必要公衆看我的網站地圖。MvcSiteMapProvider - 防止顯示/服務sitemap.xml
有沒有辦法關閉配置中的/sitemap.xml文件?或者使用RoutesConfig做到這一點?
我有一個使用MvcSiteMapProvider的網絡應用程序,但我不希望它服務器/ sitemap.xml每個頁面,但登錄頁面需要身份驗證,所以沒有必要公衆看我的網站地圖。MvcSiteMapProvider - 防止顯示/服務sitemap.xml
有沒有辦法關閉配置中的/sitemap.xml文件?或者使用RoutesConfig做到這一點?
根據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
,但技術上它可以是任何東西。