vBulletin, nginx и генерация sitemap-файлов
Потребовалось организовать генерацию sitemap на форуме, поскольку содержимое поисковых индексов сильно огорчало. Штатных средств для выполнения этой задачи у vBulletin 3.8.х нет, поэтому пришлось искать решения от сторонних разработчиков. На просторах интернет был обнаружен vbSEO Sitemap Generator, бесплатный аддон от авторов vbSEO. Ссылка на скачивание и подробное описание(на английском языке) находятся на
Вместе с аддоном поставляется готовый .htaccess с набором правил для mod_rewrite(авторы подразумевают что форум работает под apache). Поскольку мой форум работает под nginx+php-fpm, пришлось поискать каким образом переписать rewrite-правила от апачевского mod_rewrite для nginx. Оказалось что я далеко не первый кто столкнулся с такой задачей. Решение как обычно не представляет из себя ничего сложного.
В контекст server конфига nginx, нужно добавить три строки(при этом стоит учитывать относительный путь форума, в моем случае он находится в корне):
if ($request_filename ~ ((urllist|sitemap_).*\.(xml|txt)(\.gz)?) ) { rewrite ^/((urllist|sitemap_).*\.(xml|txt)(\.gz)?)$ /vbseo_sitemap/vbseo_getsitemap.php?sitemap=$1 last; }