Помощник
Здравствуйте, гость ( Вход | Регистрация )
Добавление поддержки rel="canonical" в RC5 |
Loader |
2011-08-17, 16:08
Сообщение
#1
|
|
Профессионал Группа: Eleanor user Сообщений: 1 161 Регистрация: 2010-04-19 Репутация: нет Всего: нет |
В этой теме расскажу как добавить в RC5 поддержку этого очень нужного тега, ведь система позволяет генерировать много дублей одной страницы.
Во-первых откроем свой файл classes/mainclass.php, найдём строку примерно 202 и после строки Цитата $site_path='',#Ч. Каталог сайта Цитата $origurl=null,# нужен для поддержки rel="canonical" Во-вторых открываем файл index.php в корне сайта ищем сроку примерно 253 и после Цитата .(isset($head_addon) ? "\r\n".$head_addon."\r\n" : ''); Цитата #Если модулем задан оригинальный URL страницы, сравним его с полученным if(isset($Mainclass->origurl)) { $u=$Mainclass->origurl; $ru=ELEANOR_PROTOCOL.$Mainclass->domain.$Mainclass->site_path.$_SERVER['REQUEST_URI']; if(ELEANOR_CHARSET!='utf-8') { $u=mb_convert_encoding($u,ELEANOR_CHARSET,'utf-8'); $ru=mb_convert_encoding($ru,ELEANOR_CHARSET,'utf-8'); } if($u!=$ru) $head.='<link rel="canonical" href="'.$u.'" />'."\r\n"; } Теперь нам осталось в нужном месте сообщить системе оригинальный урл для поисковиков. Для модуля новости это будет выглядеть так: открываем файл news/user/index.php и после строки 540 перед Head(); вставляем: Цитата #Сообщим оригинальный URL страницы $link=ELEANOR_PROTOCOL.$Mainclass->domain.$Mainclass->site_path.$Mainclass->vars['url_static_delimeter'].($Mainclass->vars['m_news_long_url'] ? $Mainclass->Categories_l->CategoryUrl($arr['main_cat'],'','',false) : '').$Mainclass->Url->ConstructUrl(array(array($arr['url'],'nid'=>$arr['id'])),!$Mainclass->vars['m_news_long_url']); $Mainclass->origurl=$link; Вот на этом всё. Добавить этот тэг можно в любой модуль, нужно только сообщать системе оригинальный УРЛ. Сообщение отредактировал Loader - 2011-08-19, 8:12 |
|
|
||
mrdimshop |
2011-08-17, 16:56
Сообщение
#2
|
|
Любитель Группа: Eleanor user Сообщений: 111 Регистрация: 2011-03-17 Репутация: нет Всего: нет |
Можно пример. И для чего это нужно что то я не понял.
|
|
|
||
Loader |
2011-08-17, 20:25
Сообщение
#3
|
|
Профессионал Группа: Eleanor user Сообщений: 1 161 Регистрация: 2010-04-19 Репутация: нет Всего: нет |
Вот для чего: http://forum.eleanor-cms.ru/index.php?showtopic=300 |
|
|
||
mrdimshop |
2011-08-18, 6:43
Сообщение
#4
|
|
Любитель Группа: Eleanor user Сообщений: 111 Регистрация: 2011-03-17 Репутация: нет Всего: нет |
Добавляю #Сообщим оригинальный URL страницы
$link=ELEANOR_PROTOCOL.$Mainclass->domain.$Mainclass->site_path.$Mainclass->vars['url_static_delimeter']</span>.($Mainclass->vars['m_news_long_url'] ? $Mainclass->Categories_l->CategoryUrl($arr['main_cat'],'','',false) : '').$Mainclass->Url->ConstructUrl(array(array($arr['url'],'nid'=>$arr['id'])),!$Mainclass->vars['m_news_long_url']); $Mainclass->origurl=$link; контент сайта пропадает. новерно потому что у меня не ньюс а serialy. Подправь пожалуйста для меня. |
|
|
||
Djadka |
2011-08-18, 13:12
Сообщение
#5
|
|
Любитель Группа: Eleanor user Сообщений: 463 Регистрация: 2010-10-17 Репутация: нет Всего: нет |
Добавляю #Сообщим оригинальный URL страницы $link=ELEANOR_PROTOCOL.$Mainclass->domain.$Mainclass->site_path.$Mainclass->vars['url_static_delimeter</span>']</span>.($Mainclass->vars['m_news_long_url'] ? $Mainclass->Categories_l->CategoryUrl($arr['main_cat'],'','',false) : '').$Mainclass->Url->ConstructUrl(array(array($arr['url'],'nid'=>$arr['id'])),!$Mainclass->vars['m_news_long_url']); $Mainclass->origurl=$link; контент сайта пропадает. новерно потому что у меня не ньюс а serialy. Подправь пожалуйста для меня. $link=ELEANOR_PROTOCOL.$Mainclass->domain.$Mainclass->site_path.$Mainclass->vars['url_static_delimeter']</span>.($Mainclass->vars['m_news_long_url'] ? $Mainclass->Categories_l->CategoryUrl($arr['main_cat'],'','',false) : '').$Mainclass->Url->ConstructUrl(array(array($arr['url'],'nid'=>$arr['id'])),!$Mainclass->vars['m_news_long_url']); </span> удалить надо |
|
|
||
mrdimshop |
2011-08-18, 17:38
Сообщение
#6
|
|
Любитель Группа: Eleanor user Сообщений: 111 Регистрация: 2011-03-17 Репутация: нет Всего: нет |
Удалил все ровно не получилось.
|
|
|
||
Djadka |
2011-08-18, 17:43
Сообщение
#7
|
|
Любитель Группа: Eleanor user Сообщений: 463 Регистрация: 2010-10-17 Репутация: нет Всего: нет |
А чё пишет?
|
|
|
||
mrdimshop |
2011-08-18, 17:51
Сообщение
#8
|
|
Любитель Группа: Eleanor user Сообщений: 111 Регистрация: 2011-03-17 Репутация: нет Всего: нет |
На главной у меня выводятся новости а как встовляю код все остается на месте а новости пропадают. |
|
|
||
Djadka |
2011-08-18, 18:03
Сообщение
#9
|
|
Любитель Группа: Eleanor user Сообщений: 463 Регистрация: 2010-10-17 Репутация: нет Всего: нет |
Печалька, видать отключено оповещение об ошибках
|
|
|
||
mrdimshop |
2011-08-18, 18:35
Сообщение
#10
|
|
Любитель Группа: Eleanor user Сообщений: 111 Регистрация: 2011-03-17 Репутация: нет Всего: нет |
Зайди в асю я тебе свой файл кину может наколдуешь мне решение. |
|
|
||
Djadka |
2011-08-18, 18:42
Сообщение
#11
|
|
Любитель Группа: Eleanor user Сообщений: 463 Регистрация: 2010-10-17 Репутация: нет Всего: нет |
39пять820трипятьпять
|
|
|
||
mrdimshop |
2011-08-18, 19:10
Сообщение
#12
|
|
Любитель Группа: Eleanor user Сообщений: 111 Регистрация: 2011-03-17 Репутация: нет Всего: нет |
|
|
|
||
Loader |
2011-08-19, 8:21
Сообщение
#13
|
|
Профессионал Группа: Eleanor user Сообщений: 1 161 Регистрация: 2010-04-19 Репутация: нет Всего: нет |
Я извиняюсь за SPAN , просто при редактировании этот форум пихает этот спан по своему усмотрению куда надо и не надо! Теперь продолжим: исключение дублей главной страницы: Открываем файл modules/mainpage/user/index.php и перед Head(); вставим: Цитата #Сообщим оригинальный URL страницы $Mainclass->origurl=ELEANOR_PROTOCOL.$Mainclass->domain.$Mainclass->site_path.$Mainclass->vars['url_static_delimeter']; Теперь все дубли главной, такие как site/index.html или site/index.php будут содержать тэг Цитата <link rel="canonical" href="http://site/" /> |
|
|
||
Loader |
2011-08-22, 21:42
Сообщение
#14
|
|
Профессионал Группа: Eleanor user Сообщений: 1 161 Регистрация: 2010-04-19 Репутация: нет Всего: нет |
Добавление поддержки rel="canonical" в любой модуль, использующий страницы (pages), а практически все модули их используют.
Открываем файл ваш_сайт/classes/class_strings.php и примерно на 496 строке после Цитата $links=str_ireplace('%7Bpage%7D','{page}',$links); Цитата //Сообщим оригинальный URL страницы if (is_array($link_arr)) $Mainclass->origurl=ELEANOR_PROTOCOL.$Mainclass->domain.$Mainclass->site_path.$Mainclass->vars['url_static_delimeter'].$Mainclass->Url->ConstructUrl(array_merge($link_arr,array(array('page'=>empty($_GET['page']) ? false : (int)$_GET['page'])))); // end Теперь практически во всех модулях поддерживается этот нужный тэг! |
|
|
||
Текстовая версия | 0.0589 сек. 12 запросов GZIP включен Сейчас: 2024-09-24, 1:55 |