Я решил, что обрабатывать сайт какой-нибудь сторонней приблудой много дольше, чем просто сгенерировать файлы sitemap с помощью скрипта. Тем более, что у shop-script в общем-то довольно простая структура.
Новая версия Shop-Script с ЧПУ пока недоступна, получу — модифицирую скрипт. :-)
Скрипт простенький, делает sitemap для
- aux-страниц — это у shop-script так называются обычные статические html страницы;
- страниц с категориями. Без разбивки на страницы 1, 2 и т.д. на мой взгляд эти страницы не слишком важны
- страниц с товарами и обсуждениями товаров
Корневую страницу сайта, страницу с новостями, страницу с формой обратной связи и т.п. надо записать в отдельный файл sitemap (назвать его можно, например, sitemap01.xml).
Кроме собственно скрипта понадобится исходный индексный файл (sitemap_index_src.xml или кто как назовет). В него надо добавить ссылку на созданный файл sitemap01.xml. В этот исходный индексный файл будут добавлены ссылки на автоматически сгенерированные файлы и, после этого, он будет записан под другим именем.
В результате работы скрипта получится несколько файлов с sitemap и индексный файл.
- sitemap_index.xml — индексный файл, в нем будут перечислены все файлы с sitemap.
- sitemap_aux_NN.xml.gz — файл(ы) с URL AUX-страниц. (Вместо NN будет число)
- sitemap_categories_NN.xml.gz — файл(ы) с URL всех страниц категорий, вместо NN число
- sitemap_products_NN.xml.gz — файл(ы) с URL всех страниц с товарами и обсуждениями товаров, вместо NN число. Генерация URL с обсуждениями отключается.
Настройка
В начале скрипта константы, им нужно присвоить правильные значения.- BASE_URL — URL, где находится установленный Shop-Script. http://www.server.com/. На слэш должен заканчиваться
- SITEMAP_DIR2SAVE — директория на сервере, куда будут записываться файлы sitemap. Стоит обратить внимание на то, что прятать их в отдельную поддриекторию не стоит — их расположение важно. Опция сделана для того, чтобы можно было записать их в поддиректорию, а потом изменить их расположение.
- SITEMAP_URL2SAVE — не помню, почему это я сделал отдельно. Должно бы совпадать с BASE_URL. Это путь к файлам sitemap, который будет сохраняться в индексном файле.
- ITEMS_PER_FILE — количество записей в файле sitemap. Не должно превышать 50000. Если файл получается размером более 10M, это значение надо уменьшать до просветления :-)
- SITEMAP_INDEX_SOURCE — исходный индексный файл. Он послужит основой для индексного файла
- SITEMAP_INDEX_FILE — имя с путем индексного файла
- AUX_PAGES_PRIORITY, PRODUCT_PAGE_PRIORITY, DISCUSS_PAGE_PRIORITY, CATEGORIES_PAGES_PRIORITY — относительная важность страниц (от 0 до 1). Подробнее в документации на Sitemap.
- AUX_PAGES_CHANGEFREQ, PRODUCT_PAGE_CHANGEFREQ, DISCUSS_PAGE_CHANGEFREQ, CATEGORIES_PAGES_CHANGEFREQ — частота обновления страниц. Подровлее в документации на Sitemap.
- MAKE_DISCUSS_PAGES — нужно-ли генерировать ссылки на страницы с обсуждением товара (true, false)
Скачать скрипт
Скачать скрипт можно отсюда.Пожелания, ругань, комментарии и т.п — любым удобным доступным способом. В ICQ бываю редко. :-)
Лично я немного поколдовал с include_path и повесил этот скрипт выполняться по cron’у.