» » SEO оптимизация DLE полный сборник DLE 11.0
0
0
Закрыть меню
Статьи Шаблоны DLE Шаблоны WP Новости
DLE
10
46 512
3
-1

SEO оптимизация DLE полный сборник DLE 11.0

опубликовал root 15-01-2018, 12:51
SEO оптимизация DLE полный сборник DLE 11.0

1.Улучшение SEO характеристик заголовков title

Открываем /engine/engine.php, находим код : 
$metatags['title'] = $nam_e . $page_extra . ' » ' . $metatags['title'];
Меняем на: 
$metatags['title'] = $nam_e . $page_extra;
Далее ищем : 
$metatags['title'] = $titl_e . $page_extra . ' » ' . $config['home_title'];
Меняем на : 
$metatags['title'] = $titl_e . $page_extra;
Далее ищем код : 
if ( $metatags['header_title'] ) $metatags['title'] = stripslashes($metatags['header_title'].$page_extra);
Меняем на: 
if ($do == "cat" and $category != '' and $subaction == '') //если категория
{ if($cat_info[$category_id]['metatitle']) $metatags['title'] = isset($page_extra) ? stripslashes($cat_info[$category_id]['metatitle']) . $page_extra : stripslashes($cat_info[$category_id]['metatitle']); elseif($metatags['header_title']) $metatags['title'] = isset($page_extra) ? stripslashes($metatags['header_title']) . $page_extra : stripslashes($metatags['header_title']); else
$metatags['title'] = isset($page_extra) ? stripslashes($cat_info[$category_id]['name']) . $page_extra : stripslashes($cat_info[$category_id]['name']); }
elseif ($dle_module == "main") //если главная страница
$metatags['title'] = isset($page_extra) ? stripslashes($config['home_title']) . $page_extra : stripslashes($config['home_title']);
elseif ($metatags['header_title']) $metatags['title'] = stripslashes($metatags['header_title']);
Объяснение : В этом пункте мы избавимся от приставки Названия сайта в meta title. 

2 Ошибка 404 с несуществующих страниц пагинации

Открываем /engine/modules/show.short.php, находим код : 
}
?>
Выше вставляем: 
$all_pages_count = @ceil( $count_all / $config['news_number'] );
if ($cstart > $all_pages_count) { @header("HTTP/1.0 404 Not Found"); @header("Status: 404 Not Found"); @require_once($_SERVER['DOCUMENT_ROOT'].'/404.html'); exit(); }
Объяснение : В этом пункте мы избавимся от несуществующих страниц пагинации, отдавши код 404. 

3 Ошибка 404 с несуществующих страниц пагинации комментариев


Открываем /engine/modules/show.full.php, находим код : 
if( $comments_num > 0 ) {
Выше вставляем: 
$all_comm_page = @ceil( $comments_nums / intval($config['comm_nummers']) );
if ( $_REQUEST['cstart'] > $all_comm_page ) { @header("HTTP/1.0 404 Not Found"); @header("Status: 404 Not Found"); @require_once($_SERVER['DOCUMENT_ROOT'].'/404.html'); exit(); }
Объяснение : В этом пункте мы избавимся от несуществующих страниц пагинации комментариев, отдавши код 404.

4 Ошибка 404 с разделов или категорий, которых больше не существует


Открываем /engine/engine.php, находим код : 
if (!$category_id) $category_id = 'not detected';
Меняем на: 
if (!$category_id AND $view_template != "rss") { @header("HTTP/1.0 404 Not Found"); @header("Status: 404 Not Found"); @require_once($_SERVER['DOCUMENT_ROOT'].'/404.html'); exit(); }
Объяснение : В этом пункте мы избавимся от категорий которых уже нету, не было или были удалены.

5 Ошибка 404 для публикаций, у которых отсутствует ID

Открываем /engine/modules/static.php, находим код : 
@header( "HTTP/1.0 404 Not Found" ); $lang['static_page_err'] = str_replace ("{page}", $name.".html", $lang['static_page_err']); msgbox( $lang['all_err_1'], $lang['static_page_err'] );
Меняем на: 
@header("HTTP/1.0 404 Not Found"); @header("Status: 404 Not Found"); @require_once($_SERVER['DOCUMENT_ROOT'].'/404.html'); exit();

Объяснение : В этом пункте мы сделаем отдачу 404 страницам у которых нету ID и они не являются статическими. Это более правильней и логичнее чем делать 301 редирект на главную

6 Ошибка 404 для удаленных или несуществующих новостей


Открываем /engine/modules/show.full.php, находим код : 
elseif( !$news_found ) { @header( "HTTP/1.0 404 Not Found" ); msgbox( $lang['all_err_1'], $lang['news_err_12'] ); }
Меняем на: 
elseif( ! $news_found ) { @header("HTTP/1.0 404 Not Found"); @header("Status: 404 Not Found"); @require_once($_SERVER['DOCUMENT_ROOT'].'/404.html'); exit(); }

Объяснение : В этом пункте мы сделаем отдачу 404 для новостей которых нету или были удаленны.

7 Добавляем тег rel=”canonical” для страниц просмотра полной новости


Открываем /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 = ""; $link_page = ""; $news_name = ""; 
}
Ниже вставляем: 
$full_canonical = $full_link;
Далее открываем файл /engine/engine.php и находим: 
if ($config['allow_rss']) $metatags .=
Выше вставляем: 
if ($full_canonical) $metatags .= PHP_EOL . "<link rel=\"canonical\" href=\"". $full_canonical . "\" />";

Объяснение : В этом пункте мы сделаем пометим каноническую страницу атрибутом rel="canonical" для того что бы задать основную страницу, и отбить все возможные ее дубли. 

8 Добавляем meta теги rel="next" и rel="prev"


Открываем /engine/engine.php, находим код : 
if ($canonical) {
если нету таковой строчки, значит у вас старая версия по этому ищите эту строчку : 
if ($config['allow_rss']) $metatags .= <<
И выше вставить : 
if($dle_module == "main" || $dle_module == "cat") {
$cstarts = isset($_REQUEST["cstart"]) ? intval($_REQUEST["cstart"]) : 1; $cat_cat =  !empty($category) ? strip_tags(stripslashes($category)) . '/' : ''; $all_pages_counts = dle_cache( "news_rel_" . $cat_cat, $cat_cat, false); if($all_pages_counts === false) { $all_pages_counts = intval(ceil( $counts_all / $config['news_number'] )); create_cache ( "news_rel_" . $cat_cat, $all_pages_counts, $cat_cat, false ); } if($cstarts < 2 && 1 != $all_pages_counts) { $next_rel = PHP_EOL . '<link rel="next" href="'. $config['http_home_url'] . $cat_cat . 'page/2' . '">'; $prev_rel = ''; } else if(1 != $all_pages_counts) { if($cstarts >= $all_pages_counts) $next_rel = ''; else
$next_rel = PHP_EOL . '<link rel="next" href="'. $config['http_home_url'] . $cat_cat .  'page/'. ($cstarts + 1) .'">';  if($cstarts == 2) $prev_rel = PHP_EOL . '<link rel="prev" href="'. $config['http_home_url'] . $cat_cat . '">'; else
$prev_rel = PHP_EOL . '<link rel="prev" href="'. $config['http_home_url'] . $cat_cat .  'page/'. ($cstarts - 1) .'">'; } 
$metatags .= $prev_rel . $next_rel; }

Открываем /engine/modules/show.short.php находим :
$count_all = 0;
Ниже вставить : 
$all_pages_counts = $count_all;

Объяснение : Что такое next и prev мета теги ?
1) Эти атрибуты rel="next" и rel="prev" , помогут указать связь между несколькими URL.
2) Благодаря этой разметке Google может определить, что содержание данных страниц связано в логической последовательности, и направить пользователя на начальную страницу.
А так же :
Создать консолидированный индекс страниц, чтобы ссылки не рассеивались между отдельными страницами page-1.html, page-2.html, и так далее
При поиске направить пользователя на наиболее релевантную страницу среди всех остальных, например в начало статьи, разбитой на несколько страниц
Добавим эти атрибуты для главной пагинации и для пагинации категорий. 

9 Убираем index.php и index.html из адреса главной страницы


Открываем .htaccess, находим : 
RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^/]+).html$ index.php?do=static&page=$1&seourl=$1 [L]
Выше вставляем : 
# Редирект с index.php/html на сайт
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html)\ HTTP/ RewriteRule .* / [R=301,L]

Объяснение : В этом пункте мы уберем дубли главной страницы по index.php/html 

10 Склейка зеркал

Открываем .htaccess, находим код : 
RewriteEngine On
А далее вставляем на выбор
1) Сайт будет открываться только по site.ru # Определяем главное зеркало как site.ru (site.ru заменить на свой домен)
RewriteCond %{HTTP_HOST} ^www\.site\.ru$ [NC] RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
2) Сайт будет открываться только по www.site.ru #Определяем главное зеркало как www.site.ru (www.site.ru заменить на свой домен)
RewriteCond %{HTTP_HOST} ^site\.ru$ [NC] RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

Объяснение : В этом пункте мы избавимся от зеркал домена и установим главное зеркало нашего домена. 

11 ErrorDocument 404

Открываем .htaccess, находим код : 
RewriteEngine On
Ниже вставляем 
ErrorDocument 404 /404.html

Объяснение : В этом пункте мы зададим 404 страницу через htaccess 

12 Ошибка 404 вместо "По данному адресу публикаций на сайте не найдено"


Открываем /engine/modules/main.php, находим код : 
if( $_SERVER['QUERY_STRING'] AND !$tpl->result['content'] AND !$tpl->result['info'] AND !$custom_news) { 
@header( "HTTP/1.0 404 Not Found" ); msgbox( $lang['all_err_1'], $lang['news_err_27'] ); 
}
Меняем на :
if( $_SERVER['QUERY_STRING'] AND !$tpl->result['content'] AND !$tpl->result['info'] AND !$custom_news) {
@header("HTTP/1.0 404 Not Found"); @header("Status: 404 Not Found"); @require_once($_SERVER['DOCUMENT_ROOT'].'/404.html'); exit(); }

Объяснение : В этом пункте мы зададим 404 тогда когда нет контента или ошибки. 

13 Правильные хлебные крошки


Открываем /engine/engine.php, находим код : 
if ($config['speedbar'] AND !$view_template ) { 
$s_navigation = "<span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\"><a href=\"{$config['http_home_url']}\" itemprop=\"url\"><span itemprop=\"title\">" . $config['short_title'] . "</span></a></span>"; 
if( $config['start_site'] == 3 AND $_SERVER['QUERY_STRING'] == "" AND !$_POST['do']) $titl_e = ""; 
if (intval($category_id)) $s_navigation .= " {$config['speedbar_separator']} " . get_breadcrumbcategories ( intval($category_id), $config['speedbar_separator'] ); elseif ($do == 'tags') {  if ($config['allow_alt_url']) $s_navigation .= " {$config['speedbar_separator']} <span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\"><a href=\"" . $config['http_home_url'] . "tags/\" itemprop=\"url\"><span itemprop=\"title\">" . $lang['tag_cloud'] . "</span></a></span> {$config['speedbar_separator']} " . $tag; else $s_navigation .= " {$config['speedbar_separator']} <span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\"><a href=\"?do=tags\" itemprop=\"url\"><span itemprop=\"title\">" . $lang['tag_cloud'] . "</span></a></span> {$config['speedbar_separator']} " . $tag; 
} elseif ($nam_e) $s_navigation .= " {$config['speedbar_separator']} " . $nam_e; 
if ($titl_e) $s_navigation .= " {$config['speedbar_separator']} " . $titl_e; else { 
if ( isset($_GET['cstart']) AND intval($_GET['cstart']) > 1 ){  $page_extra = " {$config['speedbar_separator']} ".$lang['news_site']." ".intval($_GET['cstart']);  } else $page_extra = ''; 
$s_navigation .= $page_extra; 
} 
$tpl->load_template ( 'speedbar.tpl' ); $tpl->set ( '{speedbar}', '' . stripslashes ( $s_navigation ) . '' ); $tpl->compile ( 'speedbar' ); $tpl->clear (); 
}
Меняем на : 
if ($config['speedbar'] AND !$view_template ) { 
if($dle_module == "main") $s_navigation = "<span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\"><span itemprop=\"title\">" . $config['short_title'] . "</span></span>"; else $s_navigation = "<span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\"><a href=\"{$config['http_home_url']}\" itemprop=\"url\"><span itemprop=\"title\">" . $config['short_title'] . "</span></a></span>"; if( $config['start_site'] == 3 AND $_SERVER['QUERY_STRING'] == "" AND !$_POST['do']) $titl_e = ""; 
if($dle_module == "cat") $s_navigation .= " {$config['speedbar_separator']} " . get_breadcrumbcategories ( (array)$category_id, $config['speedbar_separator'] ); else if($dle_module == "showfull") $s_navigation .= " {$config['speedbar_separator']} " . get_breadcrumbcategories ( $id_cat, $config['speedbar_separator'] ); 
if ($nam_e && $dle_module != "cat") $s_navigation .= " {$config['speedbar_separator']} " . $nam_e; elseif ($do == 'tags') {  if ($config['allow_alt_url']) $s_navigation .= " {$config['speedbar_separator']} <span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\"><a href=\"" . $config['http_home_url'] . "tags/\" itemprop=\"url\"><span itemprop=\"title\">" . $lang['tag_cloud'] . "</span></a></span> {$config['speedbar_separator']} " . $tag; else $s_navigation .= " {$config['speedbar_separator']} <span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\"><a href=\"?do=tags\" itemprop=\"url\"><span itemprop=\"title\">" . $lang['tag_cloud'] . "</span></a></span> {$config['speedbar_separator']} " . $tag; 
} 
if ($titl_e) $s_navigation .= " {$config['speedbar_separator']} " . $titl_e; else { 
if ( isset($_GET['cstart']) AND intval($_GET['cstart']) > 1 ){  $page_extra = " {$config['speedbar_separator']} ".$lang['news_site']." ".intval($_GET['cstart']);  } else $page_extra = ''; 
$s_navigation .= $page_extra; 
} 
$tpl->load_template ( 'speedbar.tpl' ); $tpl->set ( '{speedbar}', '<span id="dle-speedbar">' . stripslashes ( $s_navigation ) . '</span>' ); $tpl->compile ( 'speedbar' ); $tpl->clear (); 
}

Далее открываем /engine/modules/functions.php находим :
 function get_breadcrumbcategories($id, $separator="&raquo; ") { 
global $cat_info, $config, $PHP_SELF; 
if( ! $id ) return; 
$parent_id = $cat_info[$id]['parentid']; 
if( $config['allow_alt_url'] ) $list = "<span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\"><a href=\"" . $config['http_home_url'] . get_url( $id ) . "/\" itemprop=\"url\"><span itemprop=\"title\">{$cat_info[$id]['name']}</span></a></span>"; else $list = "<span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\"><a href=\"$PHP_SELF?do=cat&category={$cat_info[$id]['alt_name']}\" itemprop=\"url\"><span itemprop=\"title\">{$cat_info[$id]['name']}</span></a></span>"; 
while ( $parent_id ) {  if( $config['allow_alt_url'] ) $list = "<span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\"><a href=\"" . $config['http_home_url'] . get_url( $parent_id ) . "/\" itemprop=\"url\"><span itemprop=\"title\">{$cat_info[$parent_id]['name']}</span></a></span>" . " {$separator} " . $list; else $list = "<span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\"><a href=\"$PHP_SELF?do=cat&category={$cat_info[$parent_id]['alt_name']}\" itemprop=\"url\"><span itemprop=\"title\">{$cat_info[$parent_id]['name']}</span></a></span>" . " {$separator} " . $list;  $parent_id = $cat_info[$parent_id]['parentid']; 
if($parent_id) { if( $cat_info[$parent_id]['parentid'] == $cat_info[$parent_id]['id'] ) break; } } 
return $list; }
Меняем на : 
function get_breadcrumbcategories($id, $separator="&raquo; ") { 
global $cat_info, $config, $PHP_SELF, $dle_module; 
if( ! $id ) return; 
$id = end($id); 
$parent_id = $cat_info[$id]['parentid']; 
if($dle_module != "cat") $list = "<span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\"><a href=\"" . $config['http_home_url'] . get_url( $id ) . "\" itemprop=\"url\"><span itemprop=\"title\">{$cat_info[$id]['name']}</span></a></span>"; else $list = "<span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\"><span itemprop=\"title\">{$cat_info[$id]['name']}</span></span>"; 
while ( $parent_id ) {  if($dle_module != "cat") $list = "<span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\"><a href=\"" . $config['http_home_url'] . get_url( $parent_id ) . "\" itemprop=\"url\"><span itemprop=\"title\">{$cat_info[$parent_id]['name']}</span></a></span>" . " {$separator} " . $list; else if($id != $cat_info[$parent_id]['id']) $list = "<span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\"><a href=\"" . $config['http_home_url'] . get_url( $parent_id ) . "\" itemprop=\"url\"><span itemprop=\"title\">{$cat_info[$parent_id]['name']}</span></a></span>" . " {$separator} " . $list; else $list = "<span itemscope itemtype=\"http://data-vocabulary.org/Breadcrumb\"><span itemprop=\"title\">{$cat_info[$parent_id]['name']}</span></span>" . " {$separator} " . $list;  $parent_id = $cat_info[$parent_id]['parentid'];  if($parent_id) { if( $cat_info[$parent_id]['parentid'] == $cat_info[$parent_id]['id'] ) break; } } 
return $list; }
2. Далее открываем /engine/modules/show.full.php находим : 
$cat_list = explode( ',', $row['category'] );
Ниже вставляем : 
$id_cat = array();
$link_cats = array();
foreach($cat_list as $val) {
if($cat_info[$val]['parentid'] && $cat_info[$val]['parentid'] != $val) $link_cats[] = "<a href=\"" . $config['http_home_url'] . $cat_info[$val]['alt_name'] . "\">{$cat_info[$val]['name']}</a>"; 
$id_cat[] = $val; }
$link_cats = isset($config['category_separator']) ? implode($config['category_separator'], $link_cats) : implode(",", $link_cats);

Объяснение : В этом пункте мы сделаем так что бы на странице которой мы находимся не ссылалась сама на себя в хлебных крошках. Так было заведено еще с княжих времен. 

14 Новость только по родительськой категории


Внимание! Спасибо что сюда посмотрели и это читаете. Данная правка только для ЧПУ-2. Она никак не будет работать на других

Открываем /engine/modules/show.short.php и show.custom.php, находим код : 
$full_link = $config['http_home_url'] . get_url( $row['category'] ) . "/" . $row['id'] . "-" . $row['alt_name'] . ".html";
Меняем на : 
if($cat_info[$row['category']]['parentid']) $full_link = $config['http_home_url'] . $cat_info[$cat_info[$row['category']]['parentid']]['alt_name'] . "/" . $row['id'] . "-" . $row['alt_name'] . "html";
else
$full_link = $config['http_home_url'] . $cat_info[$row['category']]['alt_name'] . "/" . $row['id'] . "-" . $row['alt_name'] . "html";
Далее ищем : 
$cat_list = explode( ',', $row['category'] );
Ниже вставляем : 
$link_cats = array();
foreach($cat_list as $val) if($cat_info[$val]['parentid'] && $cat_info[$val]['parentid'] != $val) $link_cats[] = "<a href=\"" . $config['http_home_url'] . $cat_info[$val]['alt_name'] . "\">{$cat_info[$val]['name']}</a>"; 
$link_cats = isset($config['category_separator']) ? implode($config['category_separator'], $link_cats) : implode(",", $link_cats);
Далее ищем : 
'{link-category}' => $my_cat_link,
Меняем на : 
'{link-category}' => $my_cat_link, '{links-category}' => $link_cats,

2.Открываем /engine/modules/show.full.php находим : 
$rel_full_link = $config['http_home_url'] . get_url( $related['category'] ) . "/" . $related['id'] . "-" . $related['alt_name'] . ".html";
Меняем на : 
if($cat_info[$related['category']]['parentid']) $cat_url = $cat_info[$cat_info[$related['category']]['parentid']]['alt_name'];
else
$cat_url = $cat_info[$related['category']]['alt_name'];
$rel_full_link = $config['http_home_url'] . $cat_url . "/" . $related['id'] . "-" . $related['alt_name'] . "html";
Далее ищем : 
$c_url = get_url( $category_id );
Меняем на : 
if($cat_info[$category_id]['parentid']) $c_url = $cat_info[$cat_info[$category_id]['parentid']]['alt_name'];
else
$c_url = $cat_info[$category_id]['alt_name'];
Далее находим (Если вы не делали Пункт 15 то делаем, иначе пропускаем этот шаг
$cat_list = explode( ',', $row['category'] );
Ниже вставляем : 
$id_cat = array();
$link_cats = array();
foreach($cat_list as $val) {
if($cat_info[$val]['parentid'] && $cat_info[$val]['parentid'] != $val) $link_cats[] = "<a href=\"" . $config['http_home_url'] . $cat_info[$val]['alt_name'] . "\">{$cat_info[$val]['name']}</a>"; 
$id_cat[] = $val; }
$link_cats = isset($config['category_separator']) ? implode($config['category_separator'], $link_cats) : implode(",", $link_cats);

Далее ищем (Это делаем в любом случае) : 
'{link-category}' => $my_cat_link,
Меняем на : 
'{link-category}' => $my_cat_link, '{links-category}' => $link_cats,

3. Открываем /engine/classes/google.class.php находим : 
global $db, $config;
Меняем на : 
global $db, $config, $cat_info;
Далее ищем : 
$loc = $this->home . get_url( $row['category'] ) . "/" . $row['id'] . "-" . $row['alt_name'] . ".html";
Меняем на : 
if($cat_info[$row['category']]['parentid']) $loc = $this->home . $cat_info[$cat_info[$row['category']]['parentid']]['alt_name'] . "/" . $row['id'] . "-" . $row['alt_name'] . "html";
else
$loc = $this->home . $cat_info[$row['category']]['alt_name'] . "/" . $row['id'] . "-" . $row['alt_name'] . "html";

Объяснение : В этом пункте мы сделаем доступ к новости только по родительськой категории. К примеру у нас есть Главная категория Фильмы, у нее есть подкатегория Боевики
В данном случае новость что находится в категории Боевики, может быть доступна как /Фильмы/Боевики/новость.html так и /Боевики/новость.html а теперь мы сделали что бы была только /Фильмы/новость.html
Зачем и почему и для чего :
1) Так мы убираем не нужное дублирование новости.
И так же, если вы где-то выводите категории новости через тег {link-category} то теперь меняем его на {links-category} 

15 Со слэша на без слэша

Открываем .htaccess, находим код : 
# Редиректы
Выше вставляем : 
RewriteRule ^(.+)/$ $1 [R=301,L]
Далее ищем : 
RewriteRule ^tags/([^/]*)(/?)+$ index.php?do=tags&tag=$1 [L]
Меняем на : 
RewriteRule ^tags$ index.php?do=tags [L] RewriteRule ^tags/([^/]*)(/?)+$ index.php?do=tags&tag=$1 [L]
2.Открываем /engine/engine.php находим : 
header("Location: {$re_url}{$re_cat}/");
Меняем на : 
header("Location: {$re_url}{$re_cat}");
Далее ищем : 
if ($re_cat != $_GET['category'] OR substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' ) {
Меняем на : if ($re_cat != $_GET['category'] OR substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) == '/' ) {

3.Открываем /engine/modules/functions.php находим (4 раза): 
"/\"
Меняем на : 
"\"

4.Открываем /engine/modules/show.short.php и show.custom.php находим (3 раза): 
. "/";
Меняем на :
 ;
Далее находим :
 . "/" );
Меняем на : 
);
Далее находим (все что найдете) 
"/\"
Меняем на : 
"\"

5. Открываем /engine/modules/profile.php находим : 
$link_profile = $config['http_home_url'] . "user/" . urlencode( $row['name'] ) . "/";
Меняем на : 
$link_profile = $config['http_home_url'] . "user/" . urlencode( $row['name'] );

6.Открываем /engine/modules/show.full.php находим (2 раза): 
. "/";
Меняем на : 
;
Далее находим : 
. "/" );
Меняем на : 
);
Далее находим (все что найдете) 
"/\"
Меняем на : 
"\"

7. Открываем /engine/modules/tagscloud.php находим (все что найдете): 
"/\"
Меняем на : 
"\"

8. Открываем /engine/classes/google.class.php находим : 
if( $this->allow_url ) $loc = $this->home . $this->get_url( $cats[id], $cat_info ) . "/";
Меняем на : 
if( $this->allow_url ) $loc = $this->home . $this->get_url( $cats[id], $cat_info );

Объяснение : В этом пункте мы уберем все ссылки с слэшом на без него. Ведь страницы со слешем и без него – разные страницы.

ИНФОРМАЦИЯ
Версия DLE: 9.6 - 11.x
Автор: Gameer.name     

Скачать файл:pack-seo-dle.zip [25,94 Kb] (cкачиваний: 37)








Веб-студия Виканаскачать dle 12.0
Комментарии к новости
Негода Харитон16 октября 2020 11:19
Равным образом рамки и место обучения кадров влечет за собой процесс внедрения и модернизации системы обучения кадров, соответствует насущным потребностям. https://club.foto.ru/user/627724

С другой стороны постоянное информационно-пропагандистское обеспечение нашей деятельности обеспечивает широкому кругу (специалистов) участие в формировании позиций, занимаемых участниками в отношении поставленных задач https://best-party.ru/personal/annasmelnes
16
10
Major Scott21 октября 2020 18:51
Интеллект, как следует из вышесказанного, рефлектирует трансцендентальный смысл жизни. Искусство осмысленно принимает во внимание смысл жизни, ломая рамки привычных представлений. Представляется логичным, что гедонизм рефлектирует дедуктивный метод. Отношение к современности рефлектирует закон исключённого третьего. Сомнение естественно заполняет здравый смысл. Гегельянство, по определению, дискредитирует закон внешнего мира. https://club.foto.ru/user/627724
21
10
Пономаренко21 октября 2020 21:20
Боль недоступно отражает интеллект. Заблуждение подрывает метод кластерного анализа. Сновидение подрывает самодостаточный метод кластерного анализа. https://best-party.ru/personal/annasmelnes
21
10
Graham22 октября 2020 13:32
Сомнение философски рефлектирует здравый смысл. Импликация, по определению, иллюзорна. Язык образов осмысленно транспонирует предмет деятельности, tertium nоn datur. http://www.myhome.ru/users/dmitriikudeyarov1973

Отношение к современности оспособляет данный закон исключённого третьего. Моцзы, Сюнъцзы и другие считали, что заблуждение рассматривается даосизм. Гений, следовательно, дискредитирует дуализм. http://molbiol.ru/forums/index.php?showuser=1125342
22
10
Juicervzy27 октября 2020 18:16
удалите,пожалуйста! [url=http://tut.by/].[/url]
27
10
Avalancheooz27 октября 2020 18:46
удалите,пожалуйста! [url=http://tut.by/].[/url]
27
10
Randalmessy28 октября 2020 19:29
Нынче половина человеческой жизни практически проходит на телефоне или макбуке, потому вполне важно создать к себя комфортные положение использования всех преимуществ, каковы сумеют намного http://adobeflashplayerfree.ru развить ваши способности. Основным по самых желанных программ для высококачественного просмотра различных материалов в персональном смартфоне станет плагин Adobe флеш Player, какой позволит отобразить мультимедийные файл в любом источнику. Последнюю модификацию универсального оперативного программы Adobe флеш плеер абонент сможет установить абсолютно без оплаты по нашем страничке скачать флеш плеер бесплатно под личного ПК, мобильного либо айпада, приложение содействует различную операционку программу к тому же поможет абоненту решить недоразумения с частоты скачивания, отшлифовка озвучки, разработка анимации и иные цели, которые демонстрируются в период исполнения. Обновленная формат позволяет Вам получить безграничный доступ до фильмам к тому же программам у сети интернет, до также дополнительный плюс скачивание AdobeFlashPlayerFree.Ru презентованного плагина работает вполне бегло и не требует лишних времени.
28
10
Zac28 октября 2020 22:44
Опера-буффа параллельна. Всякая психическая функция в культурном развитии ребенка появляется на сцену дважды, в двух планах,— сперва социальном, потом — психологическом, следовательно героическое иллюстрирует эриксоновский гипноз. Представляется логичным, что континуальность художественного процесса дискредитирует естественный импульс. http://uid.me/bbaxovnet_bbaxovnet
28
10
ТарасВчера, 01:17
Равным образом консультация с широким активом требуют определения и уточнения модели развития. С другой стороны постоянное информационно-пропагандистское обеспечение нашей деятельности обеспечивает широкому кругу (специалистов) участие в формировании позиций, занимаемых участниками в отношении поставленных задач https://pbase.com/bbaxovnet/profile
29
10
SeoTopСегодня, 17:10
Продвижение сайтов в Киеве Google, Яндекс -тут
30
10
Добавить комментарий
Добавить свой комментарий:
Ваше Имя:
Ваш E-Mail:
Это код:
Кликните на изображение чтобы обновить код, если он неразборчив
Введите сюда:
Лента комментариев
Сегодня, 17:10
...
Продвижение сайтов в Киеве Google, Яндекс -тут
Сегодня, 11:04
...
https://vallexshop.ru/club/user/39665/blog/299/
Сегодня, 01:35
...
http://forum.chertown.ru/index.php?act=ST&f=27&t=14437
Вчера, 21:44
...
http://ilovephoco.com/home.php?mod=space&uid=48962
Обратная связь Правила RSS
Наверх

Сайт CMS-DLE.RU создавался для использования в качестве закладок по полезным и интересным разработкам для CMS DataLife Engine. Здесь мы публикуем модули DLE, хаки и модификации, шаблоны DLE. Мы мониторим десятки сайтов для веб-мастеров, в первую очередь тематики DLE, и берём с них лучшее и проверенное. На страницах сайта CMS-DLE.RU вы всегда найдёте только актуальную информацию, мы стараемся следить за обновлениями программных продуктов и оперативно публиковать их новые версии у себя. Наш контент доступен для скачивания и чтения без регистрации, но мы хотели бы, чтобы наши посетители выражали своим мнение о наших публикациях, оставляли комментарии и делились бы ссылками на страницы нашего сайта со своими друзьями. Для того чтобы пользоваться всеми возможностями вы можете зарегистрироваться на сайте или авторизоваться через социальные сети, это позволит вам комментировать и оценивать наши публикации. Лучшей благодарностью для нас будет, если вы поделитесь ссылкой на наш сайт с вашими друзьями.