Проблема. Для одной и той же страницы сайта, URL которой содержит index.html (аналогично для index.php и пр.), ссылки Sape выводятся только по одному из URL-адресов. Это может привести к возникновению проблем в индексации сайтов, так как поисковики будут считать одну и ту же страницу как две разные.
Рассмотрим, к примеру, следующую ситуацию (в каждом конкретном случае решение будет индивидуальным):
http://site.ru/ (главная) — ссылки выводятся
http://site.ru/index.html (та же главная) — ссылки НЕ выводятся
http://site.ru/directory/index.html (внутренняя) — ссылки выводятся
http://site.ru/directory/ (та же внутренняя) — ссылки НЕ выводятся
Решение для PHP:
Если index.html (аналогично для index.php и пр.) находится только в конце адреса страницы, то в коде вызова ссылок необходимо строку:
$sape = new SAPE_client();
заменить на:
$o['request_uri'] = str_replace("/index.html", "/", $_SERVER['REQUEST_URI']); $sape = new SAPE_client($o);
В результате ссылки должны показываться по обоим адресам.
Решение для Perl:
В самом начале кода отображения ссылок, размещаемого на страницах вашего сайта, необходимо добавить следующие строки (используем регулярные выражения):
if($ENV{'REQUEST_URI'} ne '/') { $ENV{'REQUEST_URI'} =~ s/\/$/\/index\.html/; } if($ENV{'REQUEST_URI'} eq '/index.html') { $ENV{'REQUEST_URI'} =~ s/\/index\.html$/\//; }
Тогда блок ссылок будет выводиться по обоим адресам.
P.S. Чтобы в поисковиках не возникло дубля главной страницы, адрес http://site.ru/index.html можно закрыть от индексации в файле robots.txt (Disallow: /index.html).