Переадресация в DLE с неправильной страницы в правильную

hakervova
На сайте с 16.05.2007
Offline
146
2142

Здравствуйте.

Такой вопрос:

Есть сайт на DLE 7.5

Например правильная новость: http://site.ru/123-test.hmtl

Если ввожу неправильную http://site.ru/123-trrrr.html - то грузится http://site.ru/123-trrrr.html а должно грузится http://site.ru/123-test.hmtl

Знаю что в версиях 8хх это можно сделать прямо в админке.

В этой версии такого в админке нету.

Сам пациент: http://povar.biz

Нужно только для версии DLE 7.5!

Подскажите пожалуйста как сделать.

63 сайта для размещения вашей статьи с ТИЦ от 10 до 150. (https://searchengines.guru/ru/forum/970831 ) | Магазин услуг и цифровых товаров - http://seomaniya.com/ | Канал "Все о шашках" https://www.youtube.com/damkinet
adel92
На сайте с 04.01.2012
Offline
334
#1

Через htaccess не устраивает? Принципиально через админку?

Через htaccess это легче всего. Добавить одну строку.

Redirect 301 /старая-страница http://www.site.ru/новая-страница
NVMe VDS (https://well-web.net/nvme-vps) с поддержкой 24/7 - от 545 руб.! Безлимитный хостинг (https://well-web.net/ssd-hosting) - от 129 руб.! Домен в подарок! Перенос бесплатно! Заказывайте сейчас, и получите скидку 50%! Заходи! (https://well-web.net/limited-offers)
hakervova
На сайте с 16.05.2007
Offline
146
#2
adel92:
Через htaccess не устраивает? Принципиально через админку?
Через htaccess это легче всего. Добавить одну строку.

Это только для одной страницы.

А если таких страниц тысячи? И так каждую вручную добавлять? Не так точно не подходит. Я ленивый ).

S
На сайте с 30.09.2016
Offline
469
#3

hakervova, это у adel92 шутки такие.:)

На самом деле, это делается через регулярные выражения, если, конечно, есть общая закономерность. Но боюсь, что в Вашем случае надо по ID вытягивать инфу из БД, а хтакцесс этого делать не умеет, естественно. Тогда только движок ковырять.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
hakervova
На сайте с 16.05.2007
Offline
146
#4

Все нашел решение, может кому-то тоже поможет в будущем:

Открываем файл /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 редирект

WebAlt
На сайте с 02.12.2007
Offline
251
#5
hakervova:

...Есть сайт на DLE 7.5

Обновиться не судьба, за столько лет? Уже 12.0 релиз вышел, а вы всё на запорожце и даже не тюннигованом ездите.:)

hakervova
На сайте с 16.05.2007
Offline
146
#6
WebAlt:
Обновиться не судьба, за столько лет? Уже 12.0 релиз вышел, а вы всё на запорожце и даже не тюннигованом ездите.:)

Думаете я не пробовал обновляться? Но при обновлении нужные мне модули, которые писали под определенные сайты не работают. Поэтому лучше я буду ездить на рабочем "запорожце" а не толкать мерседес руками :).

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