【发布时间】:2015-01-01 01:55:51
【问题描述】:
我有一个使用 MvcSiteMapProvider 的网络应用程序,但我不希望它像每个页面一样服务器 /sitemap.xml,但登录页面需要身份验证,因此公众无需查看我的站点地图。
有没有办法在配置中关闭 /sitemap.xml 文件?还是使用 RoutesConfig 的方法?
【问题讨论】:
标签: asp.net-mvc mvcsitemapprovider
我有一个使用 MvcSiteMapProvider 的网络应用程序,但我不希望它像每个页面一样服务器 /sitemap.xml,但登录页面需要身份验证,因此公众无需查看我的站点地图。
有没有办法在配置中关闭 /sitemap.xml 文件?还是使用 RoutesConfig 的方法?
【问题讨论】:
标签: asp.net-mvc mvcsitemapprovider
根据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 站点地图的 URL。与\robots.txt 文件不同,它没有默认位置。我们选择了最合理的逻辑路径\sitemap.xml,但从技术上讲,它可以是任何东西。
【讨论】: