Раздел Название темы Ответов Последний
Халява / Бесплатное в Сети Запрос на слив с SHAREWOOD 3 gladtraffic
Свободное общение собака насрала 5 Dle3
Делимся опытом Получаем миллионы проксей ipv6 за 55руб/мес 0 Dle3
Мануалы / Статьи [TexTerra] SEO 2.0 (2020) 0 Dle3
Ищу Сюда пишите то, что кому нать! 15 gladtraffic

Убрать ID новости из URL адреса публикации на DLE

Хаки для DLE 08 август 2013 Добавил: Dle3
  • 0
Информация предоставлена сайтом dle3.ru исключительно в ознакомительных целях. Администрация сайта не несет ответственности за его содержимое.
Скачать бесплатно Убрать ID новости из URL адреса публикации на DLE.

Убрать ID новости из URL адреса публикации на DLE

При добавлении нового материала каждой новости автоматически присваивается ID, который в последствии вставляется в URL адрес новости. Хак убирает ID вставку и переадресует со старых адресов новостей на новые. Работает со всеми версиями движка, начиная с 8.5

Как убрать ID публикации из URL новости:

1. Открываем файл /engine/engine.php и ищем код:

// ################ Новость целиком #################
if ($subaction != '' or $newsid) {
if (! $newsid) $sql_news = "SELECT id, autor, date, short_story, full_story, xfields, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, fixed, rating, vote_num, news_read, approve, votes, access, flag, editdate, editor, reason, view_edit, tags, metatitle FROM " . PREFIX . "_post WHERE alt_name ='$news_name' AND date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR LIMIT 0,1";
else $sql_news = "SELECT id, autor, date, short_story, full_story, xfields, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, fixed, rating, vote_num, news_read, approve, votes, access, flag, editdate, editor, reason, view_edit, tags, metatitle FROM " . PREFIX . "_post where id = '$newsid'";

if ($subaction == '') $subaction = "showfull";
}
}


заменяем на:
// ################ Новость целиком #################  
if ($subaction != '' or $_GET['newsid']) {
if (! $_GET['newsid']) $sql_news = "SELECT id, autor, date, short_story, full_story, xfields, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, fixed, rating, vote_num, news_read, approve, votes, access, flag, editdate, editor, reason, view_edit, tags, metatitle FROM " . PREFIX . "_post WHERE alt_name ='$news_name' AND date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR LIMIT 0,1";
else $sql_news = "SELECT id, autor, date, short_story, full_story, xfields, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, fixed, rating, vote_num, news_read, approve, votes, access, flag, editdate, editor, reason, view_edit, tags, metatitle FROM " . PREFIX . "_post where alt_name = '{$_GET['newsid']}'";

if ($subaction == '') $subaction = "showfull";
}
}


2. В файлах /engine/modules/show.short.php, show.custom.php, topnews.php ищем:

 if( $row['category'] and $config['seo_type'] == 2 ) {  

$full_link = $config['http_home_url'] . get_url( $row['category'] ) . "/" . $row['id'] . "-" . $row['alt_name'] . ".html";

} else {

$full_link = $config['http_home_url'] . $row['id'] . "-" . $row['alt_name'] . ".html";

}

} else {

$full_link = $config['http_home_url'] . date( 'Y/m/d/', $row['date'] ) . $row['alt_name'] . ".html";
}

} else {

$full_link = $config['http_home_url'] . "index.php?newsid=" . $row['id'];

}


и заменяем на:

if( $row['category'] and $config['seo_type'] == 2 ) {  

$full_link = $config['http_home_url'] . get_url( $row['category'] ) . "/" . $row['alt_name'] . ".html";

} else {

$full_link = $config['http_home_url'] . $row['alt_name'] . ".html";

}

} else {

$full_link = $config['http_home_url'] . date( 'Y/m/d/', $row['date'] ) . $row['alt_name'] . ".html";
}

} else {

$full_link = $config['http_home_url'] . "index.php?newsid=" . $row['alt_name'];

}


3. Открываем файл /.htaccess и ищем:

RewriteRule ^([^.]+)/([0-9]+)-(.*).html(/?)+$ index.php?newsid=$2 [L] 


заменяем на:

RewriteRule ^([^.]+)/(.*).html(/?)+$ index.php?newsid=$2 [L] 


ищем:

RewriteRule ^([0-9]+)-(.*).html(/?)+$ index.php?newsid=$1 [L] 


заменяем на:

RewriteRule ^(.*).html(/?)+$ index.php?newsid=$1 [L] 


вырезаем и вставляем в самый конец файла следующий код:

# Сам пост
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day= $3&news_page=$4&cstart=$5&news_name=$6 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day= $3&news_page=$4&news_name=$5 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/print:page,([0-9]+),(.*).html(/?)+$ engine/print.php?subaction=showfull&year=$1&month=$2&day= $3&news_page=$4&news_name=$5 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day= $3&news_name=$4 [L]

RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$4&news_page=$2&cstart=$3 [L]
RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$3&news_page=$2 [L]
RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$ engine/print.php?news_page=$2&newsid=$3 [L]
RewriteRule ^([^.]+)/(.*).html(/?)+$ index.php?newsid=$2 [L]

RewriteRule ^page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$3&news_page=$1&cstart=$2 [L]
RewriteRule ^page,([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$2&news_page=$1 [L]
RewriteRule ^print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$ engine/print.php?news_page=$1&newsid=$2 [L]
RewriteRule ^(.*).html(/?)+$ index.php?newsid=$1 [L]


4. Что бы со старых типов ссылок шло перенаправление на ссылки нового вида необходимо открыть файл /engine/modules/show.full.php, найти код:

@header( "HTTP/1.0 404 Not Found" ); 
msgbox( $lang['all_err_1'], $lang['news_err_12'] );
}


и заменить на:

preg_match("/([0-9]*)-(.+?).html$/i", $_SERVER["REQUEST_URI"], $res); 
if(intval($res[1]) > 0){
header('HTTP/1.1 301 Moved Permanently');
header('Location: '.$config['home_url'].$res['2'].'.html');
exit;
}


найти:

$news_found = TRUE;


ниже добавить:

if($config['allow_alt_url'] == "yes"){

preg_match( '/'.$row['id'].'-(.*?).html/is' , $_SERVER["REQUEST_URI"] , $parse_alt_name );

if($row['alt_name'] != trim($parse_alt_name[1]) )$news_found = FALSE; if( !$news_found ) break;

}

Коммент Комментариев: 5          Нашли ошибку в тексте?
recomend
  1. ava

    Написал: loloshe4ko
    Группа: Неавторизованные пользователи
    5
    20 апреля 2014 08:46
    с точки зрения СЕО - это Бессмысленое занятие, чисто для самоудовлетворения.

  2. ava

    Написал: OJJuLpbKY
    Группа: Неавторизованные пользователи
    4
    10 апреля 2014 07:12
    tramadol overdose hallucinations - buy tramadol online no prescription

  3. ava

    Написал: YWjaCnNrK
    Группа: Неавторизованные пользователи
    3
    9 апреля 2014 13:27
    tramadol for dogs with arthritis - buy tramadol without prescriptions

  4. ava

    Написал: 06shurik
    Группа: Неавторизованные пользователи
    2
    22 февраля 2014 21:02
    что он для seo интересного дает?

  5. ava

    Написал: top103
    Группа: Посетители Пользователь offline
    1
    9 декабря 2013 23:47
    Спасибо все отлично работает

Попасть в историю, Комментировать =)
    Имя:* E-Mail:*