Дубли страниц новостей.

Обсуждение CMS Made Simple в России.

Moderators: iturbay, wdwp

dma
Forum Members
Forum Members
Posts: 93
Joined: Wed Jun 04, 2008 12:28 pm

Дубли страниц новостей.

Post by dma »

Здравствуйте!
Подскажите пожалуйста, можно ли как нибудь избавиться от дублирования страниц в модуле "Новости"
/news/3/68/pervye-otkrytye-debaty-svetodiody-za-i-protiv.html
и
/news/3/70/pervye-otkrytye-debaty-svetodiody-za-i-protiv.html
одно и тоже.

Спасибо!
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm
Location: Ramenskoe

Re: Дубли страниц новостей.

Post by guro »

Во первых, установите шаблон по умолчанию для раскрытия новости - "Контент" => "Новости" => "Опции" => "Настройки показа полного текста новости" => "Страница по умолчанию для полного текста новости:"

Во вторых, откуда у вас эти две ссылки? На сайте они у вас есть? (не всмысле "можно перейти", а в смысле "где они присутствуют в html коде")

И в третьих, поисковики их уже проиндексировали?
dma
Forum Members
Forum Members
Posts: 93
Joined: Wed Jun 04, 2008 12:28 pm

Re: Дубли страниц новостей.

Post by dma »

В том то и дело, что я не знаю откуда берутся данные ссылки!
Это я нашел в индексе Яндекса.
На сайте же ссылки выглядят иначе:
/news/3/64/pervye-otkrytye-debaty-svetodiody-za-i-protiv.html
это на странице с новостями.
/news/3/64/pervye-otkrytye-debaty-svetodiody-za-i-protiv.html
а это на главной странице в блоке новостей.
Почему везде разные ссылки и так на всех сайтах под этой ЦМС!
Шаблон стоит по умолчанию.
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm
Location: Ramenskoe

Re: Дубли страниц новостей.

Post by guro »

С модулем новостей, действительно, имеются проблемы в плане уникальности url.
Разберем сам урл:

Code: Select all

/news/3/64/pervye-otkrytye-debaty-svetodiody-za-i-protiv.html
news - зарезервированое (зашитое в код) слово;
3 - id новости;
64 - id страницы, у которой будет взят глобальный шаблон для раскрытия новости;
pervye-otkrytye-debaty-svetodiody-za-i-protiv.html - alias новости. Нигде не хранится. Формируется налету в момент просмотра сайта. Нельзя поменять.
В итоге:
1. news - не поменять;
2. id новости - уникально для каждой новости, так же как и alias новости.
3. id страницы для раскрытия новости - можно зафиксировать указав в настройках модуля News параметр - "Страница по умолчанию для полного текста новости:" и убрав в вызовах модуля detailpage=""

Есть ещё один вариант:
1. Создаем тег пользователя "update_news_url" следующего содержания

Code: Select all

global $gCms;
$db = $gCms->GetDb();
if ( !isset($params['news_url']) || $params['news_url'] == '' ) {
  $news_url = 'news/' . munge_string_to_url($params['title']) . '-' . $params['news_id'];
  $query = 'UPDATE ' . cms_db_prefix() . 'module_news SET news_url = ? WHERE news_id = ?';
  $db->Execute($query, array($news_url, $params['news_id']));
}
2. Подцепляем его для событий ("Pасширения" => "События" => "Фильтровать по модулю: News") "NewsArticleAdded" и "NewsArticleEdited".
Теперь при создании/изменении новости будет заполняться поле "Ссылка:" в новости. Эта ссылка будет использоваться для полного раскрытия новости.

PS
Ни один из этих способов не избавит вас от задвоенности (затроенности) url новости. Следует сделать 301 редиректы с не правильных урлов на новые и ждать пока яндекс переиндексирует ваши новости.
dma
Forum Members
Forum Members
Posts: 93
Joined: Wed Jun 04, 2008 12:28 pm

Re: Дубли страниц новостей.

Post by dma »

Спасибо!

Я правильно понял?
Если сделать все как вы написали, то дублирование перестанет происходить, останется только заредиректить неправильные урлы новостей уже попавших в индекс?
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm
Location: Ramenskoe

Re: Дубли страниц новостей.

Post by guro »

Да, всё верно.
dma
Forum Members
Forum Members
Posts: 93
Joined: Wed Jun 04, 2008 12:28 pm

Re: Дубли страниц новостей.

Post by dma »

Спасибо всё работает!
dma
Forum Members
Forum Members
Posts: 93
Joined: Wed Jun 04, 2008 12:28 pm

Re: Дубли страниц новостей.

Post by dma »

Здрасте!
Ещё вопросик в эту же тему)
Поставил новую ЦМС 1.11.4 “Fernandina”
Сделал как в инструкции, вроде все работает, только одно но!
урл меняет, но выдает 404 ошибку.
как мне быть в данной ситуации?
Спасибо!
dma
Forum Members
Forum Members
Posts: 93
Joined: Wed Jun 04, 2008 12:28 pm

Re: Дубли страниц новостей.

Post by dma »

И ещё вопросик)))
Не распознает название месяца на русском языке(
Не подскажите как исправить?
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm
Location: Ramenskoe

Re: Дубли страниц новостей.

Post by guro »

dma wrote:Поставил новую ЦМС 1.11.4 “Fernandina”
Сделал как в инструкции, вроде все работает, только одно но!
урл меняет, но выдает 404 ошибку.
как мне быть в данной ситуации?
Отключите тег и введите alias новости вручную. Будет работать?
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm
Location: Ramenskoe

Re: Дубли страниц новостей.

Post by guro »

dma wrote:Не распознает название месяца на русском языке(
Где, кто, что значит не распознает?
dma
Forum Members
Forum Members
Posts: 93
Joined: Wed Jun 04, 2008 12:28 pm

Re: Дубли страниц новостей.

Post by dma »

что бы было проще, скину сайт http://rus-sam.ru/
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm
Location: Ramenskoe

Re: Дубли страниц новостей.

Post by guro »

dma wrote:Не распознает название месяца на русском языке(
http://forum.cmsmadesimple.org/viewtopi ... 27&t=63055
dma
Forum Members
Forum Members
Posts: 93
Joined: Wed Jun 04, 2008 12:28 pm

Re: Дубли страниц новостей.

Post by dma »

Отвязал тег от событий. ситуация не изменилась(
Что делать?
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm
Location: Ramenskoe

Re: Дубли страниц новостей.

Post by guro »

Для CMSMS 1.11.4 (видимо для всей линейки 1.11.х) тег будет выглядеть следующим образом

Code: Select all

global $gCms;
$db = $gCms->GetDb();
if ( !isset($params['news_url']) || $params['news_url'] == '' ) {
  $news_url = 'news/' . $params['news_id'] . '/' . munge_string_to_url($params['title']);
  $query = 'UPDATE ' . cms_db_prefix() . 'module_news SET news_url = ? WHERE news_id = ?';
  $db->Execute($query, array($news_url, $params['news_id']));
  news_admin_ops::delete_static_route($params['news_id']);
  news_admin_ops::register_static_route($news_url,$params['news_id']);
}
Locked

Return to “Russian - русский”