2014-11-05 12 views
1

У меня есть веб-приложение, которое использует MvcSiteMapProvider, но я не хочу, чтобы он был на сервере /sitemap.xml как на каждой странице, но на странице входа требуется аутентификация, поэтому нет необходимости в чтобы увидеть мою карту сайта.MvcSiteMapProvider - Предотвращение отображения/обслуживания sitemap.xml

Есть ли способ отключить файл /sitemap.xml в config? Или способ сделать это с помощью RoutesConfig?

ответ

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); 

FYI - хотя эта настройка делает то, что вы просили, на самом деле не было никаких проблем для начала. Поисковые системы не просматривают веб-сайты для файлов Sitemap для XML, они должны быть явно представлены. Согласно sitemap protocol, они могут быть отправлены через HTTP-запрос через панель управления поисковой системой или путем добавления местоположения в файл \robots.txt. Но ни одно из них не выполняется без явного вмешательства со стороны веб-мастера. Во всех случаях веб-мастер выбирает URL-адрес, по которому будет размещаться карта сайта XML. В отличие от файла \robots.txt, для него нет местоположения по умолчанию. Мы выбрали наиболее разумный логический путь \sitemap.xml, но технически это могло быть что угодно.

 Смежные вопросы

  • Нет связанных вопросов^_^