Дублирование полной новости по разным адресам в DLE

12
A8
На сайте с 15.06.2013
Offline
21
1169

Всем привет!

Возникла такая проблема: в панели вебмастера яндекса обнаружил дубли такого вида:

http://site.ru/category/page,1,2,895-name.html

Глюк присутствует на всех версиях DLE но по разному отображается, у меня версия старенькая DLE 7.5, правда обновлялась PHP вставками регулярно.

Хотелось бы получить правильный редирект: http://site.ru/category/895-name.html

На блоге Алаева есть решение, но оно также не работает полноценно. Выглядит оно так:

Найти:


Открываем файл /engine/modules/show.full.php

НАХОДИМ:
} else {

$full_link = $config['http_home_url'] . "index.php?newsid=" . $row['id'];
$print_link = $config['http_home_url'] . "engine/print.php?newsid=" . $row['id'];
$short_link = "";

}

Добавить:


ВЫШЕ ДОБАВЛЯЕМ:

//обработка неправильного alt-name и 301 редирект
$true_link = $config['http_home_url'] . substr ($_SERVER['REQUEST_URI'], 1);

if ($row['allow_comm']) { //если разрешены комменты
$conf_comm_by_page = intval( $config['comm_nummers'] ); // комм на стр из настроек
$news_comm_num = $row['comm_num']; // общее кол-во комм
$comm_page_count = @ceil( $news_comm_num / $conf_comm_by_page );
if ( ($comm_page_count >= 2) && (intval($_REQUEST['cstart']) >= 2) ) $full_link = $link_page . intval($_REQUEST['cstart']) . "," . $news_name . ".html";
}
if ($news_page >= 2) $full_link = $link_page . $news_name . ".html";

if ($true_link != $full_link) {
header('HTTP/1.1 301 Moved Permanently');
header ('Location: ' . $full_link);
die();
}
//обработка неправильного alt-name и 301 редирект

Данный метод не удаляет вышеуказанный мною дубль и подобные ему. Так как в моем случае есть еще и директория, а также несколько страниц комментариев к данной новости. Помогите решить проблему. За ранее, спасибо!

BG
На сайте с 03.10.2010
Offline
195
#1

А почему не обновится к актуальной версии?

-= Сайты на заказ | Правки, обновление, работы по DLE =- ( /ru/forum/791118 ) Telegram: @ruslansh ( tg://resolve?domain=ruslansh )
A8
На сайте с 15.06.2013
Offline
21
#2
BrightGuy:
А почему не обновится к актуальной версии?

Нереально, много уже установлено модулей приватных, дописано и внесено множество PHP вставок, не получится... Да и рашение будет полезно всем у кого старые версии и новые, так как подобный Баг есть даже в самых последних версиях скрипта DLE.

PEG
На сайте с 15.01.2006
Offline
164
PEG
#3

А генерацией htaccess'a с соответствующими редиректами (можно на автомате) не пробовали решить задачу? Раз много модулей написано, чего вам стоит еще один за 30$ заказать?

Знаю всё про Digital Marketing (https://www.mrkt.ng), помогаю в инвестициях у брокера (https://www.positive-x.net), разиваю свой Q&A сервис (https://emmabot.com).
A8
На сайте с 15.06.2013
Offline
21
#4
PEG:
А генерацией htaccess'a с соответствующими редиректами (можно на автомате) не пробовали решить задачу? Раз много модулей написано, чего вам стоит еще один за 30$ заказать?

Пробовал, не получается, может не правильно прописывал регулярные выражение, хотелось бы получить ответ у знающих. Если бы я хотел модуль заказать, то я бы давно уже купил решение и не создавал данную тему.

Данное решение также не актуально: без использования "!" - циклическая переадресация!


$true_link = $config['http_home_url'] . substr ($_SERVER['REQUEST_URI'], 1);

if (intval($_REQUEST['cstart']) >= 2) {
$comments_link = $link_page . intval($_REQUEST['cstart']) . "," . $row['alt_name'] . ".html";
}

if (($true_link == $full_link) and ($true_link == $comments_link)) {
} else {
header('HTTP/1.1 301 Moved Permanently');
header ('Location: ' . $full_link);
die();
}
siv1987
На сайте с 02.04.2009
Offline
427
#5

Disallow: */page,

и все дела. Редирект только убьет функционал, если эти комментарии действительно существуют.

A8
На сайте с 15.06.2013
Offline
21
#6
siv1987:
Disallow: */page,

и все дела. Редирект только убьет функционал, если эти комментарии действительно существуют.

Вы только исключите данную страницу из индекса, но по сути статический вес на все страницы данного типа (дубли) будет передаваться нашим сайтом, что для SEO очень плохо, редирект бы перекидывал весь вес на нужную страницу с этого дубля - этого и хочется добиться.

siv1987
На сайте с 02.04.2009
Offline
427
#7
Alliance87:
Вы только исключите данную страницу из индекса, но по сути статический вес на все страницы данного типа (дубли) будет передаваться нашим сайтом, что для SEO очень плохо, редирект бы перекидывал весь вес на нужную страницу с этого дубля - этого и хочется добиться.

Кто сказал что он будет передаваться? Откуда он будет передаваться? У вас там "до фига" веса?

Ставьте тогда редирект в htaccess - это очень легко сделать, и уберите из кода ссылки на коментарии, вам в таком они случае не понадобиться. И не будут никаких ссылок в вебмастере.

A8
На сайте с 15.06.2013
Offline
21
#8
siv1987:
Кто сказал что он будет передаваться? Откуда он будет передаваться? У вас там "до фига" веса?
Ставьте тогда редирект в htaccess - это очень легко сделать, и уберите из кода ссылки на коментарии, вам в таком они случае не понадобиться. И не будут никаких ссылок в вебмастере.

Как откуда он будет передаваться? С категории будет передаваться, а на категорию с главной, - это же дубль основной новости. Редирект и хочу сделать, не могу понять какие прописать правила, Вы знаете? Подскажите, буду благодарен.

siv1987
На сайте с 02.04.2009
Offline
427
#9
Alliance87:
Как откуда он будет передаваться? С категории будет передаваться, а на категорию с главной, - это же дубль основной новости.

На сколько я знаю ссылкам запрещенным к индексации "вес" не передается... Или передается? Уберите ссылки из кода, зачем вы их там держите если не пользуетесь этим функционалом а "вес" важнее.

Alliance87:
Редирект и хочу сделать, не могу понять какие прописать правила, Вы знаете? Подскажите, буду благодарен.

После RewriteBase добавить

RewriteRule (^|.+?/)page,[\d,]+,(\d+-.+)$ /$1$2 [R=301,L]

A8
На сайте с 15.06.2013
Offline
21
#10
siv1987:
На сколько я знаю ссылкам запрещенным к индексации "вес" не передается... Или передается? Уберите ссылки из кода, зачем вы их там держите если не пользуетесь этим функционалом а "вес" важнее.

По запрещенным к индексации страницам все равно ходит гуглбот, и атрибут nofollow Вас также не спасет, так как он не передаст вес на ссылку акцептор, но украдет в "никуда" вес с ссылки донора.

О каких ссылках Вы говорите?? из какого кода убрать? Конкретней, пожалуйста.

---------- Добавлено 15.06.2013 в 19:04 ----------

siv1987:

После RewriteBase добавить

RewriteRule (^|.+?/)page,[\d,]+,(\d+-.+)$ /$1$2 [R=301,L]

Попробовал, не работает, с дубля не перекидывает на основную новость.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий