我有一个使用MvcSiteMapProvider的网络应用程序,但我不希望它作为每个页面服务器/sitemap.xml,但登录页面需要身份验证,因此公众无需查看我的站点地图。
有没有办法在config中关闭/sitemap.xml文件?或者用RoutesConfig做到这一点?
答案 0 :(得分:2)
根据the documentation,如果使用内部DI,您可以使用/sitemap.xml
设置停用MvcSiteMapProvider_EnableSitemapsXml
端点。
<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站点地图文件,必须明确提交。根据{{3}},可以通过HTTP请求,搜索引擎控制面板或通过将位置添加到\robots.txt
文件来提交它们。但如果没有网站管理员的明确干预,这些都不会完成。在所有情况下,网站管理员都会选择将托管XML站点地图的网址。与\robots.txt
文件不同,它没有默认位置。我们选择了最合理的逻辑路径\sitemap.xml
,但从技术上讲它可以是任何东西。