Перенаправить на динамическую карту сайта или сгенерировать ее через yiic?

Я хочу сделать динамическую карту сайта для yii сайта.
Но я не смог сделать это в менеджере URL:

'urlManager'=>array(
'showScriptName'=>false,
'rules'=>array(
'sitemap.xml/*'=>'/site/sitemapxml',
array('site/sitemapxml', 'pattern'=>'sitemap.xml', 'urlSuffix'=>''),
...

поэтому я повернулся к .htaccess и я добавил перенаправление как это:

Redirect 301 /app3/sitemap.xml http://tarex.ru/app3/index.php/?r=site/sitemapxml

Другой вариант — создать файл sitemap.xml в виде файла через расширение с точки зрения команды yiic. Будет ли это более эффективно использовать время / ресурсы?

0

Решение

Прежде всего, ваше правило было неверным, используйте это вместо:

'rules' => array(
'/sitemap.xml' => '/site/sitemapxml',
...
)

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

Опция действия контроллера

Плюсы:

  • Легко реализовать и поддерживать. Это просто еще одно действие, вы не забудете, как карта сайта генерируется в вашей системе.

Минусы:

  • Динамический контент, следовательно, снижает производительность.

Решение:
использование COutputCache фильтр для кеширования. Добавьте этот фильтр в свой SiteController:

public function filters()
{
return array(
array(
'COutputCache + sitemap',
'duration' => 24 * 60 * 60 // cache for 24 hours
),
);
}

Не забудьте настроить cache компонент в вашем файле конфигурации. использование CFileCache для этого. Прочитайте соответствующий раздел Полное руководство по Yii, если вы не знакомы с этой темой.

Это довольно гибкое решение, вы можете расширить этот пример, чтобы при необходимости показывать продолжительность кеширования из вашего файла конфигурации.

вариант yiic

Плюсы:

  • sitemap.xml — это просто статический файл, более эффективно обслуживаемый веб-сервером.

Минусы:

  • нужно регулярно его обновлять и контролировать этот процесс
  • нужно использовать что-то еще, кроме фреймворка, это также требует некоторого мониторинга

Решение:
использовать задание cron для генерации sitemap.xml,

Хотя окончательное решение сильно зависит от конкретных деталей проекта, в целом, я бы придерживался первого подхода.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]