Перейти к содержанию
Форум поддержки пользователей VamShop

Не работает rel="canonical"


Рекомендуемые сообщения

Версия Вамшоп - 1.59

Не работает атрибут - canonical

Создаются дубли страниц.

Например:

http://www.kladshop.ru/product_info.php?products_id=385

http://www.kladshop.ru/product_info.php?products_id=385&ref=yml

 

Вебмастер пишет -  Укажите роботу предпочтительный адрес с помощью 301 редиректа или атрибута rel="canonical"

 

Как исправить ошибку?

Ссылка на сообщение
Поделиться на другие сайты

Так у Вас старая версия, не было ещё тогда, видимо canonical тэга.

Вот посмотрите текущую версию http://demo.vamshop.ru/samsung-galaxy-tab-3.html

Есть тэг canonical:

<link rel="canonical" href="http://demo.vamshop.ru/samsung-galaxy-tab-3.html" />

 

Ссылка на сообщение
Поделиться на другие сайты

Вообще, рекомендую всегда иметь свежую версию VamShop, т.е. правильнее всего - обновляться до текущей версии.

Ссылка на сообщение
Поделиться на другие сайты

Тогда переносите только код canonical адресов.

В /includes/application_top.php его найти можно по canonical

и в /includes/header.php

Ссылка на сообщение
Поделиться на другие сайты

Этого не достаточно.

ПОсле подгрузки  нового  /includes/header.php

Сайт перестает работать.

Видимо еще что-то надо поменять!!!

(еще в каких-то файлах)

Ссылка на сообщение
Поделиться на другие сайты

Так Вы не файлы переписывайте, а только код canonical переносите.

Понятное дело, что целиком нельзя файлы переписывать, если Вы не обновляетесь полностью.

Ссылка на сообщение
Поделиться на другие сайты

Чудес ведь не бывает.

Значит не всё перенесли или неправильно перенесли.

Надо смотреть текст ошибки, что пишет.

Ссылка на сообщение
Поделиться на другие сайты
9 часов назад, brisks сказал:

Т.е. Вы хотите сказать. Что эти 2-а файла и больше нигде ничего не меняется?!

 

Насколько я помню, да.

В /includes/application_top.php прописан код функции CanonicalUrl

В /includes/header.php она используется.

Ссылка на сообщение
Поделиться на другие сайты
  • 4 months later...

а как прописывать этот canonical ?

есть страница категории например :minute.ru/canape.html и там выведены 30 товаров а отображается по 15 и при переходе на след старницу с товарами url меняется на : minute.ru/canape.html?page=2 , а в коде, что у страницы  minute.ru/canape.html cannical равен minute.ru/canape.html , что у старницы minute.ru/canape.html?page=2 canonical равен  minute.ru/canape.html?page=2 как это исправить ? 

Ссылка на сообщение
Поделиться на другие сайты
23 минуты назад, madvolkov сказал:

а как прописывать этот canonical ?

есть страница категории например :minute.ru/canape.html и там выведены 30 товаров а отображается по 15 и при переходе на след старницу с товарами url меняется на : minute.ru/canape.html?page=2 , а в коде, что у страницы  minute.ru/canape.html cannical равен minute.ru/canape.html , что у старницы minute.ru/canape.html?page=2 canonical равен  minute.ru/canape.html?page=2 как это исправить ? 

В /includes/application_top.php поменяйте:

$search = '/\&sid.[^\&\?]*|\?sid.[^\&\?]*|\?sort.[^\&\?]*|\&sort.[^\&\?]*|\?direction.[^\&\?]*|\&direction.[^\&\?]*|\?on_page.[^\&\?]*|\&on_page.[^\&\?]*|\?page==1|\&page==1|\&cat.[^\&\?]*|\&filter_id.[^\&\?]*|\&manufacturers_id.[^\&\?]*|\&params.[^\&\?]*|\?q.[^\&\?]*|\&q.[^\&\?]*|\?price_min.[^\&\?]*|\&price_min.[^\&\?]*|\?price_max.[^\&\?]*|\&price_max.[^\&\?]*/'; // searches for the session id in the url

на:

$search = '/\&sid.[^\&\?]*|\?sid.[^\&\?]*|\?sort.[^\&\?]*|\&sort.[^\&\?]*|\?direction.[^\&\?]*|\&direction.[^\&\?]*|\?on_page.[^\&\?]*|\&on_page.[^\&\?]*|\?page.[^\&\?]*|\&page.[^\&\?]*|\?page==1|\&page==1|\&cat.[^\&\?]*|\&filter_id.[^\&\?]*|\&manufacturers_id.[^\&\?]*|\&params.[^\&\?]*|\?q.[^\&\?]*|\&q.[^\&\?]*|\?price_min.[^\&\?]*|\&price_min.[^\&\?]*|\?price_max.[^\&\?]*|\&price_max.[^\&\?]*/'; // searches for the session id in the url

 

Ссылка на сообщение
Поделиться на другие сайты

А точно код поменяли?!

У меня на странице http://vamshop.loc/smartphones.html?page=2

Тэг canonical такой http://vamshop.loc/smartphones.html

Вот мой файл /includes/application_top.php

application_top.php

Ссылка на сообщение
Поделиться на другие сайты
  • 3 months later...

снова проблема ! как исправить ? 

есть раздел с новостями...при переходе на новость в cononical отображается url данной новости а нужно что бы отображался урл каталога новостей :

http://www.actio.ru/news.php

этот вот урл можно сделать что бы отображался внутри новостей ?  

Ссылка на сообщение
Поделиться на другие сайты
4 часа назад, madvolkov сказал:

снова проблема ! как исправить ? 

есть раздел с новостями...при переходе на новость в cononical отображается url данной новости а нужно что бы отображался урл каталога новостей :

http://www.actio.ru/news.php

этот вот урл можно сделать что бы отображался внутри новостей ?  

А почему это проблема?!

По-моему, правильно, что в canonical показывает url страницы новости.

Например http://www.actio.ru/proizvodstvennaja-programma-fpt-industrial-.html

Код canonical в /includes/application_top.php, внизу, в функции CanonicalUrl()

Ссылка на сообщение
Поделиться на другие сайты
  • 2 months later...

для того чтобы в новостях поменять canonical на news.php  сделал так вот:

условие :   if ($_GET['news_id']) ВЕРНО ?

вопрос...верно ли сделано ? нигде больше ничего править не надо ? 

function CanonicalUrl()
{                            // это для того чтобы в новостях canonical был news.php
    if ($_GET['news_id']){   
    $domain = substr((($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER), 0); // gets the base URL minus the trailing slash
    $string = 'news.php'; // gets the url
    $search = '/\&sid.[^\&\?]*|\?sid.[^\&\?]*|\?sort.[^\&\?]*|\&sort.[^\&\?]*|\?direction.[^\&\?]*|\&direction.[^\&\?]*|\?on_page.[^\&\?]*|\&on_page.[^\&\?]*|\?page=1|\&page=1|\&cat.[^\&\?]*|\&filter_id.[^\&\?]*|\&manufacturers_id.[^\&\?]*|\&params.[^\&\?]*|\?q.[^\&\?]*|\&q.[^\&\?]*|\?price_min.[^\&\?]*|\&price_min.[^\&\?]*|\?price_max.[^\&\?]*|\&price_max.[^\&\?]*/'; // searches for the session id in the url
    $replace = ''; // replaces with nothing i.e. deletes
    echo preg_replace($search, $replace, $string); // merges the variables and echoing them
    }
    else
    {
    $domain = substr((($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER), 0); // gets the base URL minus the trailing slash
    $string = $_SERVER['REQUEST_URI']; // gets the url
    $search = '/\&sid.[^\&\?]*|\?sid.[^\&\?]*|\?sort.[^\&\?]*|\&sort.[^\&\?]*|\?direction.[^\&\?]*|\&direction.[^\&\?]*|\?on_page.[^\&\?]*|\&on_page.[^\&\?]*|\?page=1|\&page=1|\&cat.[^\&\?]*|\&filter_id.[^\&\?]*|\&manufacturers_id.[^\&\?]*|\&params.[^\&\?]*|\?q.[^\&\?]*|\&q.[^\&\?]*|\?price_min.[^\&\?]*|\&price_min.[^\&\?]*|\?price_max.[^\&\?]*|\&price_max.[^\&\?]*/'; // searches for the session id in the url
    $replace = ''; // replaces with nothing i.e. deletes
    echo $domain . preg_replace($search, $replace, $string); // merges the variables and echoing them    
    }
}

 

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...