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

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

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Нужна бесплатная консультация?
Планируете делать веб-проект?
Сайт использует Cookie. Правила конфиденциальности OK