JoomSEF и большое количество страниц

Статус
В этой теме нельзя размещать новые ответы.

stev

Старатель
Регистрация
23 Окт 2007
Сообщения
174
Реакции
13
Здравствуйте.
Скажите, пожалуйста, выдержит ли ЧПУ Artio JoomSEF связку joomla 1.0.15 + autobb + sobi2?
Будет большое количество страниц (примерно 5-10 тысяч) и я только сейчас задумался о жизнеспособности данной связки. Просто слышал что JoomSEF частенько генерирует левые ссылки на несуществующие страницы, или на существующие но с другим URL.

Реально ли для крупного проекта использовать joomsef?
 
AutoBB+Sobi и так базу нагружают. Плюс JoomSEF неподарок. Лучше использовать стандартный SEF который в joomla встроен, на базу часть нагрузки спадет.

Есть у JoomSEF такой момент неприятный - если заголовок стринцы длинный, то генерит он непонятно что, и в итоге дает 404 ошибку, потом руками нужно править. При твоем объеме страниц заманаешся отслеживать. Лучше стандартный SEF и немучится.
 
А что если использовать OpenSEF?
 
У всех этих компонентов есть один минус.
URL страницы генерится из заголовка, теперь смотрите, если заголовок такой:
"Нулед самый лучший в мире форум и я его никогда незабуду никогда отсюда неуйду" то в итоге вы получите URL типа: "http://www.site.ru/data/Nuled-samii-lychii-v-mire-forum-i-ya-ego-nikogdea" и все, такой url будет выдавать 404 ошибку, и вам руками придется его править.

Ладно если на сайте до 50 страниц. А вы оцените объем работы если страниц 1000 и больше, просто устанеш отслеживать все. Лучше стандартный sef юзать спокойно.
 
По поводу OpenSEF ... если его пропатчить довольно неплохо возрастает производительность. Сегодня оптимизировал ресурс для знакомого - производительность выросла почти в два с половиной раза (мерял на Для просмотра ссылки Войди или Зарегистрируйся).
Вот патчи если кому интерессно:

Файл /components/com_sef/sef.php:

if ($sefSite->id == null) $sefSite->id = -1;
$query = "SELECT * FROM #__opensef_sef WHERE published = '1'" .
"\nAND valid = '1'" .
"\nAND (direction IS NULL OR direction = '' OR direction = 'o')" .
"\nAND (site_id IS NULL " .
($sefSite->id ? ' OR site_id = ' . $sefSite->id : '') . ')' .
"\nORDER BY site_id DESC, published DESC, valid DESC, LENGTH(direction) DESC";
$database->setQuery( $query );
if ($database->loadResult()) {
$opensef_aliases = $database->loadObjectList();
}
меняем на:
if ($sefSite->id == null) $sefSite->id = -1;
$query = "SELECT * FROM #__opensef_sef WHERE published = '1'" .
"\nAND valid = '1'" .
"\nAND (direction IS NULL OR direction = '' OR direction = 'o')" .
"\nAND (site_id IS NULL " .
($sefSite->id ? ' OR site_id = ' . $sefSite->id : '') . ')' .
"\nAND (external='{$_SERVER['REQUEST_URI']}'" .
"\nORDER BY site_id DESC, published DESC, valid DESC, LENGTH(direction) DESC";
$database->setQuery( $query );
if ($database->loadResult()) {
$opensef_aliases = $database->loadObjectList();
}

В файле administrator/components/com_sef/sef.class.php меняем ф-цию на данную:

function lookupOutgoing( $site_id, $url ) { // static method
global $opensef_aliases, $database;

$returnaliases = array();
/*
if ($site_id == null) $site_id = -1;
if (count($opensef_aliases) > 0) {
foreach($opensef_aliases as $aliases){
if ( $aliases->internal == $url ) {
$returnaliases[] = $aliases;
}
}
}
*/
if (!count($returnaliases))
{
$query = "SELECT * FROM #__opensef_sef WHERE published = '1'" .
"\nAND valid = '1'" .
"\nAND (direction IS NULL OR direction = '' OR direction = 'o')" .
"\nAND internal='$url'".
"\nORDER BY site_id DESC, published DESC, valid DESC, LENGTH(direction) DESC limit 1";

$database->setQuery( $query );
if ($database->loadResult())
{
$aliases = $database->loadObjectList();
foreach($aliases as $k=>$val)
{
$returnaliases[] = $val;
}
}
}

if (is_array( $returnaliases ) && count( $returnaliases )) {
$returnaliases = xclCastObjectList( $returnaliases, 'JosOpenSEFAlias' );
return $returnaliases[0];
}
$null = null;
return $null;
}
 
Про этот патч читал уже в оригинале ;)

Аопрос выдержит ли OpenSEF большое количество страниц. Посещаемость большую может джумла и выдержит при 1000 страниц, но когда их около 10 000 сразу возникает неуверенность :D
Буду стандартный ЧПУ использовать.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху