MvcSiteMapProvider - 防止显示/提供sitemap.xml

时间:2014-11-05 00:22:21

标签: asp.net-mvc mvcsitemapprovider

我有一个使用MvcSiteMapProvider的网络应用程序,但我不希望它作为每个页面服务器/sitemap.xml,但登录页面需要身份验证,因此公众无需查看我的站点地图。

有没有办法在config中关闭/sitemap.xml文件?或者用RoutesConfig做到这一点?

1 个答案:

答案 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,但从技术上讲它可以是任何东西。