МногоСайтовый MaxSite: sitemap
Рубрика: Сайтостроительство
Метки: cms | maxsite
Подписаться на комментарии по RSS
Приветствую! Вчера под конец дня у меня родилась идея. Всё по теме MaxSite МногоСайт. А именно о вынесении в папку шаблона файла sitemap.xml. Как это было реализовано я сейчас и напишу.
Я решил воспользоваться уже известной мне схемой: через наш любимый Mod Rewrite ;-) - прописываем в .htaccess такую строчку:
- RewriteRule ^sitemap.xml$ http://%{HTTP_HOST}/sitemap.php
- RewriteRule ^sitemap.xml$ /sitemap.php
- RewriteCond $1 !^(index\.php|uploads|robots\.txt|favicon\.ico)
- RewriteCond $1 !^(index\.php|uploads|robots\.txt|sitemap\.xml|favicon\.ico)
Сам файл выглядит похитрее, чем robots.php:
- <?php
- $hostway=str_replace('.','_',$_SERVER['HTTP_HOST']);
- $hostway='./application/maxsite/templates/'.$hostway.'/sitemap.xml';
- header("Content-type: application/xml");
- echo file_get_contents($hostway);
- ?>
Итак, основная часть готова и нам нужно лишь слегка подправить плагин формирования карты сайта, чтобы файл сливался куда нам нужно. Собственно я сделал так:
- $hostway=str_replace('.','_',$_SERVER['HTTP_HOST']);
- $hostway='/application/maxsite/templates/'.$hostway.'/sitemap.xml';
- $fn = realpath(dirname(FCPATH)).$hostway;
Ну вот пожалуй и всё. Хочу так же обрадовать: скоро выпущу дополнение для преобразования в многосайтовую систему. Думаю это нужно сделать, по структуре будет примерно так: ставите MaxSite, поверх льёте мои труды и на выходе у вас многосайтовая система. Наверное за выходные сделаю пробную бету ;-)
Комментариев: 8
Было бы супер если этот движок можно будет использовать под мультиблоговую систему. Я построил сервис блогов на Life Type, но она всё же жрёт больше ресурсов сервера чем Max Site, хотя и меньше чем WordPress.
Правда для эксплуатации подобной системы нужно будет очень серьёзно поработать над безопасностью, что бы какой нибудь любитель через админку своего блога не поломал всю систему. Понимаю что это дело не пары месяцев, да и вообще возможно никто именно в таком направлении рыть не будет.
По многоблоговости именно для пользователей вряд ли дело далеко зайдёт. Тут думаю необходима правка системных файлов и будет проблема с совместимостью с MaxSite разных версий. Хотя уже сейчас можно делать сателлиты на этой системе, пользуясь только одной базой и одними файлами.
Дело здесь в другом. Есть специализированные системы, вроде движка хабрахабры. Достаточно лёгкие и развивающиеся. А Макс уже на форуме отвечал, что не планирует развивать MaxSite в многоблог. Кстати мой небольшой хак и появился после его ответа.
для чего файл sitemap.xml выносить в папку шаблона? может, лучше завести отдельную папку sitemap в корне, поставить на нее права 777, а к имени файла добавлять префикс как для таблиц в БД. и не придется каждый раз при добавлении сайта лезть в дебри файловой системы, создавать папку, выставлять права на файл... или планируете хранить в той папке еще какую-то инфу?
> RewriteRule ^sitemap.xml$ http://%{HTTP_HOST}/sitemap.php
http://%{HTTP_HOST}
лучше сократить до RewriteRule ^robots.txt$ /robots.php
иначе выдается 302 редирект. а с учетом редиректа с www.domen.ru на domen.ru, получается целых 2 редиректа.
и карту сайта хотелось бы получить без лишних редиректов.
не знаю, почему вы отказались от решения
header("Content-type: application/xml");
echo file_get_contents($hostway);
из-за лишней нагрузки на сервер? наверное, можно как-то обойтись rewrite'ми...
и спасибо за превращение maxsite в multi maxsite. как раз искал решение))) буду тестить
ошибся.
> RewriteRule ^sitemap.xml$ http://%{HTTP_HOST}/sitemap.php
http://%{HTTP_HOST}
лучше сократить до RewriteRule ^robots.txt$ /robots.php
в предыдущем комменте следует читать как:
> RewriteRule ^robots.txt$ http://%{HTTP_HOST}/robots.php
лучше сократить до RewriteRule ^robots.txt$ /robots.php
Согласен. Спасибо:) Внёс изменения в статью.
По вынесению в отдельную папку думал, но решил, что незачем. итак используется папка шаблона для одного сайта, так зачем огород городить? Хотя не уверен, может стоит и в отдельную вынести.
> итак используется папка шаблона для одного сайта
я так и не понял, зачем в папку шаблона что-то ложить помимо шаблона. ведь шаблон может быть один на неск. сайтов, это выбирается в опциях в админке.
и еще.
недавно глянул - яндексу отдается много 404 страниц. оказалось, ты выложил старую версию xml sitemap генератора. она не учитывает отложенную публикацию. то есть в карту сайта отдавались посты с датой больше текущей. и яшка, есстественно, их получить не мог)
Да была такая проблема. Странно что версия sitemap генератора от версии к версии вроде не менялась. Исправим.