sh404SEF - замечательный компонент Joomla, который умеет делать ЧПУ-ссылки и много еще чего сеошно-ориентированного. Его особенность в том, что он не использует правила ModRewrite в .htaccess. Проблема с сапой в том, что ссылки не отображаются на страницах при любых вариантах кода, которые мне удалось нагуглить. А решение очень простое - добавить в код строку $o['request_uri'] = getenv(’REQUEST_URI’);. То есть код будет выглядеть так:

define(’_SAPE_USER’, ‘супер_пупер_идентификатор’);
require_once($_SERVER['DOCUMENT_ROOT'].’/’._SAPE_USER.’/sape.php’);
$o['request_uri'] = getenv(’REQUEST_URI’);
$sape = new SAPE_client($o);
echo $sape->return_links();

Все, проблема решена. Так-же есть модуль mod_sape, который прекрасно работает с последними версиями Joomla и sh404SEF.
mod_sape с кодировкой windows-1251
mod_sape с кодировкой utf8
Для установки нужно включить системный плагин Legacy для поддержки старых расширений. Чтоб mod_sape заработал, нужно настроить так, как показано на кликабельной картинке.
modsape



Рубрики: Sape
8 Комментариев

« Комментарии

14.04.2009 23:35

Использовали ли Вы “шаблонный” код с sh404SEF с включённым mod_rewrite?

Реально задолбался ставить различные саповские коды. И в шаблон пробовал, и с модулем - Эффект один и тот же - сапа видит лишь 6 joomlaвских страниц после переиндексации. Параллельно использовал и хочу использовать стандартный саповский код в каталоге ссылок(не Joomlaвский) на данном сайте.

Помогите пожалуйста, если есть мысли.

15.04.2009 18:44

что такое “шаблонный” код? =)
код у меня стоит в шаблоне, такой, какой приведен в посте. с индексацией проблем не было никогда, все индексируется с любыми саповскими кодами. мысли есть - у джумлы очень хитрая структура документов, и если за ней не следить, то почти все страницы уходят за УВ3. возможно дело в этом. надо сделать хтмл-карту сайта (хороший компонент есть - Joomap), чтоб на нее была ссылка с главной. карта сайта получится тогда УВ2, а все страницы с сылками с нее - УВ3. надо учитывать что ограничение у сапоробота - 300 ссылок на внутренних страницах, и если страниц больше, то большая карта сайта не поможет, надо разбивать на маленькие, по разделам например, но на каждую часть должна быть ссылка с главной. так получится вывести все страницы в УВ3. много страниц УВ2 у меня не получается сделать, разве только захламлять главную ссылками. максимум получалось, не портя вид сайта, 60-80.

15.04.2009 19:31

Гляньте, пожалуйста этот сайтик (ссылка в имени).
На вскидку, скажите какие мысли, потому что я уже задолбался, простите. =)

Спасибо.

15.04.2009 19:32

чёрт, вот эта :)

15.04.2009 22:23

глянул. сайт, как сайт, по структуре похож на мой, страниц явно больше 6.
я так понял, сайт уже есть в сапе, и вы заказываете переиндексацию. не знаю, почему робот не видит остальные страницы.
включите $o['force_show_code'] = true; и смотрите проверочную строчку в коде страницы. или режим отладки в mod_sape. если код будет работать на всех страницах, то проблема скорее всего на стороне сапы. если код будет работать не на всех страницах, то не знаю, на джумле я с таким не сталкивался..

15.04.2009 23:25

использую этот код в шаблоне.

if (!defined(’_SAPE_USER’)){
define(’_SAPE_USER’, ‘тут мои цифирки’);
}
require_once($_SERVER['DOCUMENT_ROOT'].’/’._SAPE_USER.’/sape.php’);

$o['request_uri'] = $_SERVER['REDIRECT_URL']; //этот код отвечает за чпу
$sape = new SAPE_client($o);
?>
return_links();
?>
Вставлял проверочный код - отображает.

PS Тут умные ребята подумали и подсказали, что вся фигня может быть из-за хостинга. Может такое быть?

PS PS подскажите, в чём глобальное отличие REQUEST_URI от REDIRECT_URL именно для сапы, да и вообще.

16.04.2009 11:15

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

глобальное отличие в особенностях работы sh404SEF. посмотрите, какие значения имеют переменные, если их по разному вызвать на страницах, созданных sh404SEF:

$_SERVER['REDIRECT_URL']: /index.php
$_SERVER['REQUEST_URI']: /index.php?option=com_content&Itemid=4&id=3&lang=ru&layout=blog&limitstart=5&view=category
getenv(’REDIRECT_URL’): /index.php
getenv(’REQUEST_URI’): /Primer-ssilki-sh404SEF.html

как видите, $_SERVER['REDIRECT_URL'] ничем не поможет, сапа не сможет получить адрес страницы, $_SERVER['REQUEST_URI'] возвращает реальный адрес страницы без ЧПУ. работает только getenv(’REQUEST_URI’). почему именно так, я не знаю, надо спрашивать разработчиков sh404SEF. .htaccess у меня стандартный.

18.04.2009 18:10

спасибо. =)

« Оставить комментарий