КАНОНИЧЕСКИЙ АДРЕС 2020 ВОСКРЕШЕНИЕ

Автор Василич, 12 мая 2020, 17:59:53

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Василич

Так как тема Канонический адрес закрыта , несколько ответов по вопросам той темы 2011 года ...

Раз у меня возникла таже проблема спустя много лет , значит может возникнуть еще у кого ...

Василич

Где вообще присваивается $context['canonical_url'] ?

Сразу предупреждаю , я не специалист ... Все делалось методом проб и ошибок и перелопачиванием поисковика ... Плюс что-то подсказывали на форуме ... Так сказать по мере поступления проблем ...

Я откопал $context['canonical_url'] в файле index.template.php ...

При чем у меня этих файла два ... Хотя может я так типа копию файла делал на случай косяков ? Честно не помню ...

Один файл index.template.php по адресу public_html/ПАПКА ФОРУМА/Themes ...

Второй чуть глубже - public_html/ПАПКА ФОРУМА/Themes/default

$context['canonical_url'] обитает примерно в районе 134-140 строк в таком виде ...

    if (!empty($context['canonical_url']))
    echo '
    <link rel="canonical" href="', $context['canonical_url'], '" />';


Кстати , чуть выше в этом же файле живет robots , о котором тоже все часто спрашивают. Тут уже я поменял сontent="noindex", который стоял изначально и на который часто ругает Яндекс на content="index,follow"

if (!empty($context['robot_no_index']))
 echo '
 <meta name="robots" content="index,follow" />';

Василич

GeorG: 
$context['canonical_url'] "обычно" равен $scripturl (адрес форума), как вариант, к нему добавляется последующий путь к разделу, или теме.
В админке, сам по себе, нигде не присваивается...


C одной стороны я долго доходил до этой фразы , пока в том же index.template.php рядом с $context['canonical_url'] не нашел


echo '
 <link rel="help" href="', $scripturl, '?action=help" />
 <link rel="search" href="', $scripturl, '?action=search" />
 <link rel="contents" href="', $scripturl, '" />';


Прямо как сказал GeorG , меня смутило , что для canonical_url так не было ... А более запутанное :

if (!empty($context['canonical_url']))
      echo '
      <link rel="canonical" href="', $context['canonical_url'], '" />';


Рассуждая как чайник "на ощупь" , мне кажется этот кусок для canonical_url по аналогии можно было записать как-то короче через $scripturl ... Т.е. через адрес форума ...

Или что-то типа такого:

    <link rel="canonical" href="http://forum.ru" />;

Но фантазировать с кодом как-то не хотелось , поэтому параллельно с ковырянием в коде , я пытался осилить .htaccess ...

В итоге оказалось, что переадресация в .htaccess без ковыряния в коде в index.template.php , решила все мои проблемы как с каноническим адресом , так и разными хвостами в адресах форума типа

Канонический URL-адрес: https://forumtennis.ru/index.php?PHPSESSID=f580e83d65b5d4871a40f4de4c5cd926& 

Я вставил в .htaccess

RewriteCond %{QUERY_STRING} PHPSESSID=(.*)$ [NC]
RewriteRule .* /? [R=301,L]

RewriteCond %{QUERY_STRING} fbclid=(.*)$ [NC]
RewriteRule .* /? [R=301,L]

Если кому поможет , буду рад ...