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

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

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
    

  • 0



20-03-2016, 22:37 5 368 5

Всего комментариев: 5


  1. андрей от 15 марта 2017 11:15

    Сборник PHP может и не плохой, ну ГДЕ описание этого всего. Почему кто то должен что то менять не разобравшись? Не охото писать, так хоть видео запишите объясните не разумным.



  2. Alexan от 23 марта 2017 21:16

    Объяснение есть в каждом пункте ниже для чего это и как. Вы не внимательны Андрей)).



  3. Forge от 10 апреля 2017 13:23

    Приветствую, заметил не большую ошибку в пункте №14. Нужно добисать две точки перед html иначе получается кривой url.

    Сейчас так:

    $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";

    Нужно:

    $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";

     

    Такие же ошибки в 14.2 и 14.3, так же имеется лишних слэш в google.class.php который появляется в sitemap.

    Поменять на:

    $loc = $this->home . $cat_info[$row['category']]['alt_name'] . $row['id'] . "-" . $row['alt_name'] . ".html";

    Данные проблемы возникли на версии 11.2, может на других версиях и не нужно ничего менять, но всё ровно оставлю на заметку)



  4. Timkab от 1 октября 2017 18:38
    Приветствую. Скажите, пожалуйста, на сколько актуальна данная статья для 12 версии? Я понимаю меньше, чем хотелось бы, если предпринять все и для 12 версии - подойдет? И хотелось бы услышать мнение относительно ошибок, замеченных пользователем выше. Надеюсь на ответ, спасибо.


  5. Alexan от 5 октября 2017 21:52
    Спасибо пользователю Forge! правильные исправления. А на счет актуальности для 12 версии ничего не можем сказать, еще не проверялось.



Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.