Как сделать карту сайта

Sitemap.xml доступен по адресу /sitemap.xml (при запросе карта генерируется на основе данных из хранимой процедуры falcon_sitemap).

Примечание: 

При запросе происходит вызов подгружаемого файла через систему ресурсов с помощью данного правила в web.config: 

<rule name="Sitemap.xml" stopprocessing="true">
    <match url="(.*)sitemap\.xml"></match>
    <action type="Rewrite" url="/Controls/Resource/GetFile?code=sitemap"></action>
</rule>   

Настройка процедуры falcon_sitemap

  1. Из @parameters получаем домен по ключу as_domain
  2. В табличную переменную @result собираем все нужные страницы для sitemap:
    1. loc - url страницы
    2. lastmod - дата последнего обновления
    3. changefreq - частота изменения страницы
    4. priority - приоритетность url относительно других url на сайте
  3. В переменную @s склеиваем данные из таблицы @result согласно шаблону https://www.sitemaps.org/ru/protocol.html
CREATE PROCEDURE [dbo].[falcon_sitemap]
  @parameters DictionaryParameter READONLY,  -- as_domain - передача домена
  @s nvarchar(max) output	
AS
BEGIN
	declare @domain nvarchar(128) = ''
    select @domain = Value from @parameters where [Key]='as_domain'
	
	declare @result table(loc nvarchar(256) ,lastmod nvarchar(32), changefreq nvarchar(24)  , priority nvarchar(10) )

	insert into @result
	SELECT	top 1000  
			'https://'+ @domain + iif(code='_default', '', '/'+code) loc, 
			convert(nvarchar(10), modified, 120) lastmod, 
			'monthly' changefreq,  
			'0.8' priority
	FROM pg_pages
	WHERE isInMenu = 1 AND role = 'all' or code='_default'

         -- здесь можно добавить и другие ссылки в таблицу @result по аналогии

	set @s = '<?xml version="1.0" encoding="UTF-8"?>';
	set @s = Replace(@s + (select * from @result FOR XML RAW ('url'), ROOT ('urlset'), ELEMENTS), '<urlset>', '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">')
END

Falcon Space - функциальная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Насколько полезной была статья?

Google поиск по нашей документации

Falcon Space

Это снижение стоимости владения

за счет меньшего количества людей для поддержки и узкого стека разработки. Про снижение стоимости владения продуктом

Это быстрое внесение изменений

по ходу эксплуатации программы. Как создается функционал на платформе

Это простой удобный интерфейс

адаптация под мобильные устройства. Про юзабилити платформы