Привет! Я запускаю обучающие онлайн курсы по SEO. Подробности и форма записи на Alaev.school
promopult
 

SEO оптимизация DLE: Часть 2 — Избавляемся от дублирования контента, связанного с URL

SEO оптимизация DLE - Часть 2 Привет, друзья. Хочу представить вашему вниманию вторую часть из цикла статей про засеошивание движка Datalife Engine. И сегодня мы поговорим об очень щекотливом моменте — дублирование контента, связанное с отображением одной и той же страницы по разным адресам url.

Давайте вспомним одно из самых основных правил оптимизации сайта — страница должна быть доступна только по одному url! К сожалению, при разработке движка DLE, программисты не сильно озаботились этим моментом и забили, а может не подумали, или просто понадеялись, что никто не станет баловаться с адресами, а все пользователи сети, распространяя наш контент посредствам оставления внешних ссылок на форумах или соцсетях, будут соблюдать структуру нашего сайта и правильность адресов. Ага, как бы ни так...

А ведь однажды нарушенная ссылка может привести к размножению таких «неправильных» ссылок, которые повлекут за собой появление «неправильных» страниц, что однозначно скажется пагубно на нашем сайте!

И цель сегодняшнего поста — предотвратить появление таких вот «неправильных» страниц, а так же избавиться от уже появившихся. И самое главное — надо сделать так, чтобы «неправильные» ссылки вели на нужные (т.е. «правильные») страницы.


Пост обновлен 5 мая 2014 года:
Обновлены вносимые в движок изменения, добавлена поддержка новых версий движка.
Актуально для следующих версий DLE: 7.x, 8.x, 9.x, 10.x!

Другие части SEO-руководства:
Часть 1, Оптимизация заголовков Title — http://alaev.info/blog/post/2373
Часть 3, Особенности внутренней оптимизации движка — http://alaev.info/blog/post/3294
Часть 4, Исправление для версий DLE 9.3, 9.4, 9.5, 9.6 — http://alaev.info/blog/post/3513


Для начала нам необходимо оценить размах трагедии, понять какие и в каком количестве могут появиться дубли.

Для удобства понимания я оформил все в виде таблички, где вы можете в первом столбце увидеть, какие дубли могут возникнуть, а во втором столбце указана основная страница, на которую должен быть осуществлен 301 редирект, если сделать все правильно!

Возможный дубль 301 Основная страница
Главная страница (http://site.ru)
http://www.site.ru -> http://site.ru
http://site.ru/index.php -> http://site.ru
http://site.ru/page/1/ -> http://site.ru
Страница категории (http://site.ru/category/)
http://site.ru/category -> http://site.ru/category/
http://site.ru/category/page/1/ -> http://site.ru/category/
Страница субкатегории, если есть вложенность (http://site.ru/cat/subcat/)
http://site.ru/cat/subcat -> http://site.ru/cat/subcat/
http://site.ru/cat/subcat/page/1/ -> http://site.ru/cat/subcat/
http://site.ru/subcat/ -> http://site.ru/cat/subcat/
http://site.ru/subcat -> http://site.ru/cat/subcat/
http://site.ru/subcat/page/1/ -> http://site.ru/cat/subcat/
Страница материнской категории, если есть вложенность (http://site.ru/cat/)
http://site.ru/cat -> http://site.ru/cat/
http://site.ru/cat/page/1/ -> http://site.ru/cat/
http://site.ru/subcat/cat/ -> http://site.ru/cat/
http://site.ru/subcat/cat -> http://site.ru/cat/
http://site.ru/subcat/cat/page/1/ -> http://site.ru/cat/
Страница полной новости, которая пусть принадлежит категории truecat (http://site.ru/truecat/123-news-name.html)
http://site.ru/truecat/123-bla-bla-bla-name.html -> http://site.ru/truecat/123-news-name.html
http://site.ru/123-news-name.html -> http://site.ru/truecat/123-news-name.html
http://site.ru/fakecat/123-news-name.html -> http://site.ru/truecat/123-news-name.html
http://site.ru/truecat/page,1,1,123-news-name.html -> http://site.ru/truecat/123-news-name.html

Как видите, дублей дофига и больше! И чем сложнее структура сайта, тем больше вероятность появления неожиданностей. Так или иначе, но прочитав данный пост до конца, вы сможете решить все эти проблемы, а внутренние дубли контента вас никогда больше не потревожат.
Тут очень важный момент про слово «никогда» — подразумевается, что после обновления движка до новой версии, вы снова проверите свой сайт на наличие проблем и при необходимости внесете все правки!

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

На момент написания поста последняя версия движка DLE 9.5. Важно знать, что начиная с версии 9.3 разработчики решили некоторые проблемы – избавились от возможного дублирования, связанного с просмотром полной новости и некоторых проблем с категориями. В любом случае, я рекомендую всем и всегда обновляться до последней версии.

Итак, если вы понимаете о чем я написал выше, то приступайте к дальнейшему изучению.


Склейка зеркал — выбираем главное зеркало www.site.ru или site.ru

Актуальность: Все версии DLE. Проверено на 7.x, 8.x, 9.x, 10.x.

Какие проблемы решаем:

  • Полное дублирование сайта по адресам http://site.ru и http://www.site.ru

Раскрыть список правок

Открываем файл .htaccess, который находится в корне сайта (это там, где лежит основной index.php)

НАХОДИМ:

RewriteEngine On

НИЖЕ ДОБАВЛЯЕМ:

(если в качестве основного зеркала выбран http://site.ru)

### START Определяем главное зеркало как site.ru (site.ru заменить на свой домен, например alaev.info)
RewriteCond %{HTTP_HOST} ^www\.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
### END Определяем главное зеркало

(если в качестве основного зеркала выбран http://www.site.ru)

### START Определяем главное зеркало как www.site.ru (www.site.ru заменить на свой домен, например www.alaev.info)
RewriteCond %{HTTP_HOST} ^site\.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
### END Определяем главное зеркало

Скрыть список правок

Теперь не важно, как пользователи будут в браузере вводить адрес сайта, с www или без — будет осуществляться редирект на основное зеркало сайта. Так же не важно, каким образом стоят внешние ссылки на сайт — вес всех входящих ссылок сохранится и суммируется для основного зеркала.


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

Актуальность: Все версии DLE. Проверено на 7.x, 8.x, 9.x, 10.x.

Какие проблемы решаем:

  • Дублирование главной страницы по адресам http://site.ru, http://site.ru/index.php и http://site.ru/index.html

Раскрыть список правок

Открываем файл .htaccess, который находится в корне сайта (это там, где лежит основной index.php)

В САМЫЙ КОНЕЦ ДОБАВЛЯЕМ:

### Редиректы с index.php или index.html на сайт
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html)\ HTTP/
RewriteRule .* / [R=301,L]

Скрыть список правок

Теперь не будет возникать самого распространённого дубля главной страницы, а так же дублей категорий и других разделов.


Склеиваем адреса страниц /page/1/ с основными адресами для главной страницы и категорий

Актуальность: Все версии DLE. Проверено на 7.x, 8.x, 9.x, 10.x.

Какие проблемы решаем:

  • Дублирование главной страницы сайта по адресам http://site.ru/page/1/ и http://site.ru/
  • Дублирование основной (первой) страницы категории по адресам http://site.ru/category/page/1/ и http://site.ru/category/

Раскрыть список правок

Открываем файл .htaccess, который находится в корне сайта (это там, где лежит основной index.php)

НАХОДИМ:

### END Определяем главное зеркало

НИЖЕ ДОБАВЛЯЕМ:

### START Редирект с первой страницы на основную
RewriteBase /
RewriteRule ^(.*)page/1(/|)$ $1 [R=301,L]
### END Редирект с первой страницы на основную

Для подстраховки или если вариант с .htaccess не сработал. Открываем файл /engine/engine.php

НАХОДИМ:

		if (($subaction == "showfull" or $subaction == "addcomment") and ((! isset ( $category ) or $category == ""))) {

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

	if ( (intval($_GET['cstart']) == 1) && (strpos($_SERVER['REQUEST_URI'], '/page/1') !== false) ) {
		$first_page_url = str_replace ( "/page/1", "", $_SERVER['REQUEST_URI'] );
		header("HTTP/1.0 301 Moved Permanently");
		header("Location: $first_page_url");
		die("Redirect");
	}

Скрыть список правок

Теперь при вводе неправильного адреса с /page/1/ на конце, будет осуществляться редиректить на основную страницу.


Устраняем неразбериху с категориями их вложенностью и слешем / на конце

Актуальность: Только версии DLE 8.2-9.2. Для DLE 9.3 и выше необходимо ОБЯЗАТЕЛЬНО в настройках движка активировать опцию «Обрабатывать неверные URL ЧПУ».

Какие проблемы решаем:

  • Дублирование страниц категорий по адресам без слеша и со слешем на конце
  • Дублирование страниц пагинации по адресам без слеша и со слешем на конце
  • Дублирование страниц категорий и подкатегорий при нарушении иерархии(вложенности)

Раскрыть список правок

Открываем файл /engine/engine.php (смотрим в районе 170-180 строки)

НАХОДИМ:

		if ($do == "cat" and $category != '' and $subaction == '') {

НИЖЕ ДОБАВЛЯЕМ:

//решение проблемы с категориями, редирект на верный урл, добавление слеша в конец
			if( $config['allow_alt_url'] == "yes" AND $category_id AND $view_template != "rss") {
 
				$re_cat = get_url( $category_id );
 
				if ($re_cat != $_GET['category'] OR substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' ) {
					$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
					$re_url = reset ( $re_url );
 
					header("HTTP/1.0 301 Moved Permanently");
					header("Location: {$re_url}{$re_cat}/");
					die("Redirect");
				}
			}
//решение проблемы с категориями, редирект на верный урл, добавление слеша в конец

Скрыть список правок

Теперь не будет никакой неразберихи в url'ах адресов категорий и подкатегорий. Для всех неправильных вариантов будет осуществляться 301-редирект на основную правильную страницу.


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

Актуальность: Только версии DLE 8.2-9.2. Для DLE 9.3 и выше читайте исправление ошибок новых версий DLE 9.3, 9.4, 9.5, 9.6.

Какие проблемы решаем:

  • Дублирование новостей, разбитых на страницы, когда существовали две одинаковые страницы по адресам site.ru/page,1,123-news_name.html и site.ru/123-news_name.html
  • Дублирование новостей с комментариями, разбитыми на страницы, когда существовали две одинаковые страницы по адресам site.ru/page,1,1,123-news_name.html и site.ru/123-news_name.html
  • Дублирование новости, когда осуществлялся переход на несуществующую страницу комментариев
  • Дублирование новости при ошибке в названии новости, например, site.ru/123-bla_bla_news_name.html — сработает редирект на правельный адрес site.ru/123-news_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 редирект

Скрыть список правок

Итак, теперь при любых ошибках ввода url'а новости сайта будет осуществляться редирект на верный адрес — главным идентификатором в этом случае работает id новости.


Вот и все, друзья! Все проблемы, казавшиеся такими масштабными решились не такими уж и большими правками файлов движка. Теперь можете проверить любые проблемные адреса из указанных мной в начале поста — все будет обрабатываться так, как мы этого хотим, а правильнее сказать, все будет обрабатываться так как это полюбят поисковики, теперь у нас никогда не случится дублей!


Убираем слеш в конце url — редирект со страницы со слешем в конце на страницу без слеша

А теперь самый спорный пункт сегодняшнего руководства – разбираемся с дублями связанными с наличием слеша / в конце адресов категорий и страниц пагинации.

ВНИМАНИЕ!!! Правки, приведенные ниже, применимы ТОЛЬКО ДЛЯ ВЕРСИЙ DLE 8.x, 9.0 и 9.2. Если вы попробуете применить правки для любых других версий, это полностью выведет из строя ваш сайт!

Все, что написано ниже, предназначено для тех, кто последовал прошлой редакции моего руководства и убрал слеши в конце, чтобы избавиться от дублей.
Этот же мануал предназначен для тех, кому просто не нравится слеш в конце. Такие ведь бывают, да?

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

Обрабатываем категории:

Раскрыть список правок

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

		if ($do == "cat" and $category != '' and $subaction == '') {

НИЖЕ добавляем:

//решение проблемы с категориями, редирект на верный урл, удаление слеша в конец
			if( $config['allow_alt_url'] == "yes" AND $category_id AND $view_template != "rss") {
 
				$re_cat = get_url( $category_id );
 
				if ($re_cat != $_GET['category'] OR substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) == '/' ) {
					$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
					$re_url = reset ( $re_url );
 
					header("HTTP/1.0 301 Moved Permanently");
					header("Location: {$re_url}{$re_cat}");
					die("Redirect");
				}
			}
//решение проблемы с категориями, редирект на верный урл, удаление слеша в конец

Скрыть список правок

Теперь сделаем проверку всех адресов на наличие слеша в конце, и если он есть — делаем 301 редирект на страницу без слеша.

Раскрыть список правок

Открываем наш любимый .htaccess и находим:

### END Определяем главное зеркало

НИЖЕ добавляем:

### START Убираем слеш в конце
RewriteRule ^(.+)/$ $1 [R=301,L]
### END Убираем слеш в конце

Скрыть список правок

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

Убираем слеши из URL категорий, генерируемых движком:

Раскрыть список правок

Открываем файл /engine/modules/functions.php и ищем Функцию function get_categories ($id)

Находим строку:

	if( $config['allow_alt_url'] == "yes" ) $list = "<a href=\"" . $config['http_home_url'] . get_url( $id ) . "/\">{$cat_info[$id]['name']}</a>";

Заменяем на:

	if( $config['allow_alt_url'] == "yes" ) $list = "<a href=\"" . $config['http_home_url'] . get_url( $id ) . "\">{$cat_info[$id]['name']}</a>";

Находим строку:

		if( $config['allow_alt_url'] == "yes" ) $list = "<a href=\"" . $config['http_home_url'] . get_url( $parent_id ) . "/\">{$cat_info
[$parent_id]['name']}</a>" . " &raquo; " . $list;

Заменяем на:

		if( $config['allow_alt_url'] == "yes" ) $list = "<a href=\"" . $config['http_home_url'] . get_url( $parent_id ) . "\">{$cat_info
[$parent_id]['name']}</a>" . " &raquo; " . $list;

Скрыть данный список правок и раскрыть следующий

Убираем слеши из URL пагинации, генерируемых движком:

Раскрыть список правок

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

Находим строку:

					$prev_page = $url_page . "/";

Заменяем на:

					$prev_page = $url_page . "";

Находим строку:

					$prev_page = $url_page . "/page/" . $prev . "/";

Заменяем на:

					$prev_page = $url_page . "/page/" . $prev . "";

Находим:

									$pages .= "<a href=\"" . $url_page . "/\">$j</a> ";

Заменяем:

									$pages .= "<a href=\"" . $url_page . "\">$j</a> ";

Находим:

									$pages .= "<a href=\"" . $url_page . "/page/" . $j . "/\">$j</a> ";

Заменяем:

									$pages .= "<a href=\"" . $url_page . "/page/" . $j . "\">$j</a> ";

Находим:

						if( $config['allow_alt_url'] == "yes" ) $pages .= "<a href=\"" . $url_page . "/\">1</a>
<span class=\"nav_ext\">{$lang['nav_trennen']}</span> ";

Заменяем:

						if( $config['allow_alt_url'] == "yes" ) $pages .= "<a href=\"" . $url_page . "\">1</a>
<span class=\"nav_ext\">{$lang['nav_trennen']}</span> ";

Находим:

									$pages .= "<a href=\"" . $url_page . "/\">$j</a> ";

Заменяем:

									$pages .= "<a href=\"" . $url_page . "\">$j</a> ";

Находим:

									$pages .= "<a href=\"" . $url_page . "/page/" . $j . "/\">$j</a> ";

Заменяем:

									$pages .= "<a href=\"" . $url_page . "/page/" . $j . "\">$j</a> ";

Находим:

						if( $config['allow_alt_url'] == "yes" ) $pages .= $nav_prefix . "<a href=\"" . $url_page .
"/page/{$enpages_count}/\">{$enpages_count}</a>";

Заменяем:

						if( $config['allow_alt_url'] == "yes" ) $pages .= $nav_prefix . "<a href=\"" . $url_page .
"/page/{$enpages_count}\">{$enpages_count}</a>";

Находим:

				$next = $url_page . '/page/' . $next_page . '/';

Заменяем:

				$next = $url_page . '/page/' . $next_page . '';

Скрыть данный список правок и раскрыть следующий

Убираем слеши из URL профилей пользователей, генерируемых движком:

Раскрыть список правок

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

Находим строку:

	if( $config['allow_alt_url'] == "yes" ) $link_profile = $config['http_home_url'] . "user/" . urlencode( $row['name'] ) . "/";

Заменяем на:

	if( $config['allow_alt_url'] == "yes" ) $link_profile = $config['http_home_url'] . "user/" . urlencode( $row['name'] );

Скрыть данный список правок и раскрыть следующий

Убираем слеши из URL тегов, генерируемых движком:

Раскрыть список правок

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

Находим:

				if( $config['allow_alt_url'] == "yes" ) $tags[] = "<a href=\"" . $config['http_home_url'] . "tags/" . urlencode(
$value ) . "/\">" . $value . "</a>";

Заменяем:

				if( $config['allow_alt_url'] == "yes" ) $tags[] = "<a href=\"" . $config['http_home_url'] . "tags/" . urlencode(
$value ) . "\">" . $value . "</a>";

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

Находим:

	        	$tags[] = "<a href=\"".$config['http_home_url']."tags/".urlencode($value['tag'])."/\" class=\"{$value['size']}\" title=\"".$lang
['tags_count']." ".$value['count']."\">".$value['tag']."</a>";

Заменяем:

	        	$tags[] = "<a href=\"".$config['http_home_url']."tags/".urlencode($value['tag'])."\" class=\"{$value['size']}\" title=\"".$lang
['tags_count']." ".$value['count']."\">".$value['tag']."</a>";

Находим:

        	$tpl->result['tags_cloud'] .= "<br /><br /><a href=\"".$config['http_home_url']."tags/\">".$lang['all_tags']."</a>";

Заменяем:

        	$tpl->result['tags_cloud'] .= "<br /><br /><a href=\"".$config['http_home_url']."tags\">".$lang['all_tags']."</a>";

Находим:

	        		$tags[] = "<a href=\"".$config['http_home_url']."tags/".urlencode($value['tag'])."/\" class=\"{$value['size']}\" title=\"".
$lang['tags_count']." ".$value['count']."\">".$value['tag']."</a>";

Заменяем:

	        		$tags[] = "<a href=\"".$config['http_home_url']."tags/".urlencode($value['tag'])."\" class=\"{$value['size']}\" title=\"".
$lang['tags_count']." ".$value['count']."\">".$value['tag']."</a>";

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

Находим:

			if( $config['allow_alt_url'] == "yes" ) $tags[] = "<a href=\"" . $config['http_home_url'] . "tags/" . urlencode( $value ) .
"/\">" . $value . "</a>";

Заменяем:

			if( $config['allow_alt_url'] == "yes" ) $tags[] = "<a href=\"" . $config['http_home_url'] . "tags/" . urlencode( $value ) .
"\">" . $value . "</a>";

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

Находим:

				if( $config['allow_alt_url'] == "yes" ) $tags[] = "<a href=\"" . $config['http_home_url'] . "tags/" . urlencode(
$value ) . "/\">" . $value . "</a>";

Заменяем:

				if( $config['allow_alt_url'] == "yes" ) $tags[] = "<a href=\"" . $config['http_home_url'] . "tags/" . urlencode(
$value ) . "\">" . $value . "</a>";

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

Находим:

		if ($config['allow_alt_url'] == "yes") $s_navigation .= " &raquo; <a href=\"" . $config['http_home_url'] . "tags/\">" . $lang
['tag_cloud'] . "</a> &raquo; " . $tag;

Заменяем:

		if ($config['allow_alt_url'] == "yes") $s_navigation .= " &raquo; <a href=\"" . $config['http_home_url'] . "tags\">" . $lang
['tag_cloud'] . "</a> &raquo; " . $tag;

В очередной раз открываем .htaccess

Находим:

# вывод отдельному тегу
RewriteRule ^tags/([^/]*)(/?)+$ index.php?do=tags&tag=$1 [L]
RewriteRule ^tags/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=tags&tag=$1&cstart=$2 [L]

Заменяем:

# вывод отдельному тегу
RewriteRule ^tags$ index.php?do=tags [L]
RewriteRule ^tags/([^/]*)(/?)+$ index.php?do=tags&tag=$1 [L]
RewriteRule ^tags/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=tags&tag=$1&cstart=$2 [L]

Скрыть данный список правок

Ну вот и все! Большую работу мы с вами проделали, однако. Но оно того стоило.

Я еще раз хочу обратить внимание на все изменения связанные с убиранием слеша на конце.

  1. Если вы продаете ссылки с сайта, я не рекомендую производить изменения, так как все проданные ссылки со страниц категорий/тегов/пагинации отпадут. Так как все же страницы со слешем и без него – разные страницы.
  2. Если вы однажды сделаете эти изменения, то в будущем вам придется их все время делать при обновлении движка. Так как в противном случае опять будут появляться страницы со слешем на конце.
  3. На самом деле, как бы это все страшно не звучало и не выглядело – это нормально и не вредно.
  4. Если вы не пользуетесь тегами, то вы можете избавить себя от большого объема работы, связанного с их переработкой. В таком случае, все, что ниже заголовка «Убираем слеши из тегов генерируемые движком», можно игнорировать.
  5. Вступление всех изменений в силу требует времени. Это связано с переиндексацией сайта поисковыми системами. Так что терпенье, друзья, только терпение. Для больших сайтов терпение измеряется 1-2 месяцами.

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

С уважением, Александр Алаев
 
Ерунда и баянЪ!Зачет! Плюсую!
+40
 
Оптимизация сайта

Профессиональный технический аудит и оптимизация вашего сайта.
Тот самый необходимый «фундамент» для успешного продвижения.

от 15 000 руб.
Продвижение сайта

Комплексный подход к решению поставленных задач, будь то достижение заветных позиций в ТОП 10 или увеличение трафика на сайт. В стоимость уже включены полный технический аудит и оптимизация сайта.

от 20 000 руб.
Консультация

У вас недостаточно знаний?
Нужен ответ на ряд вопросов?
Хотите узнать мнение эксперта?
Вы задаете вопрос — я отвечаю!

2 500 руб./час
 
Получай новости блога АлаичЪ'а на e-mail:
 
Другие посты из категории Datalife Engine:
  1. Денис Фотокор (9 комм.)

    Добрый день, а как можно избавиться от /page/1/ через роботс?

    Никто не пробовал так прописать robots.txt?

    User-agent: *
     
    Disallow: /page/
    Disallow: /lastnews/
    • АлаичЪ

      И что с того, что не будет индексироваться /page/1/? Лучше будет если вес страницы /page/1/ будет прибавляться к основной странице, нежели будет просто пропадать в пустоту.

      На счет «Disallow: /page/» — это как вариант борьбы с частичным дублированием контента. Неплохой вариант, но не идеальный.

      • Денис Фотокор (9 комм.)

        Добрый день, спасибо за советы. Я тестировал 3 месяца до этого с robots.txt и пришёл к мнению, что «Disallow: /page/» не помогает удалить:

        /page/1/

        /page/2/

        /page/.../

        Особенно проблемные места это когда индексируются страницы категорий с /page/.../

        Не подскажите, регулярное выражение для robots.txt?

    • Алексей Кротов (1 комм.)

      User-agent: *

      Disallow: */page/1/

      Allow: */page/

      Можно через rel="canonical" для страниц вида http://xxx/page/1/ прописать Canonical: http://xxx/page/

  2. Денис Фотокор (9 комм.)

    Спасибо.

    У меня такая проблема была: Яндекс и Гугл периодически считали страницу для печати более релевантной, чем оригинал!

    Как отключить в dle print page?

    В итоге, я запретил её для индексации, но Гугл на данный момент в выдаче имеет 100 страниц с "печати", что необходимо сделать ещё?

    Disallow: /print:page
    • АлаичЪ

      Страницы с печатями вообще даже в настройках движка закрываются от индексации. Это происходит при помощи тега <meta name="robots" content="noindex,follow" />. При включении этой настройки можно даже в роботс ничего не прописывать.

      И еще — уберите ссылки на страницы печати с сайта.

  3. wmkz (2 комм.)

    Имхо чем же Вам помешал / в конце категорий? Его в полных новостях никогда и не было! Зачем столько бреда, если он никак не влияет на выдачу и дублирование контента?

    • АлаичЪ

      Я про полные новости и не говорил, я говорил про страницы категорий так-то.

      У меня на моих сайтах в выдаче страницы категорий отображаются по разному, какие-то с /, а какие-то без /. Люди на своих сайтах/блогах тоже ссылаются по разному, кто-то оставляет слеш, кто-то убирает. Так почему бы не склеить веса обоих страниц в один? Ммм? Где тут бред?

  4. wmkz (2 комм.)

    Можно просто выставить со / через .htaccess и это займет минуту времени и будет Вам счастье, а Вы расписали целую эпопею как удалить этот / в конце категорий, так какой смысл в «Убираем слеши из тегов генерируемые движком:» переделывать целую эпопею если можно внести пару строчек в .htaccess и все, и будет тот же самый эффект без лишний телодвижений чтоб избавиться от /.

    Когда на выходе результат тот же и получается.

    ИМХО зачем человеку пропихивать долгий способ, если есть намного проще, а эффект такой же?

    • АлаичЪ

      Вы, к сожалению, вообще не поняли ничего :(

      У меня написана в самом начале строка для .htaccess файла, которая редирект делает на страницы без слеша. Но а понравится ли вам, что в движке везде все равно присутствуют страницы со слешем? А поисковикам понравится при переходе по каждой ссылке получать редирект? Я так не думаю...

      И на выходе разные результаты. Мой — правильный, а ваш — херновый.

  5. NMitra (23 комм.)

    Я приверженец Blogger и постаралась оптимизировать его по максимум своих знаний и возможностей системы. Посмотрите в поиске Гугла "site:http://shpargalkablog.ru" в дополнительных результатах отсутствуют страницы. Это говорит об отсутствии дубликатов. Для "site:http://alaev.info" ситуация не очень хорошая. Вот одни из подобных страниц:

    http://alaev.info/wp-content/plugins/google-sitemap-generator/lang/sitemap-ja_EUC.mo

    http://alaev.info/wp-content/plugins/wp-print/print.php

    http://alaev.info/wp-content/plugins/all-in-one-seo-pack/all_in_one_seo_pack-ru_RU.mo

    http://alaev.info/blog/post/500?replytocom=426

    http://alaev.info/wp-content/ampie/patterns/horizontal.swf

    http://alaev.info/blog/post/120?iframe=true&width=900&height=450

    http://alaev.info/?page_id=2

    http://alaev.info/fotofolio/ledinatali-1/ledinatali-memory-7

    http://alaev.info/blog/post/984/feed (и фид здесь же)

    Если интересно посмотреть как я добилась данного результата, посмотри на http://shpargalkablog.ru/2010/07/kontent.html. Приоритетно, как я сказала, для Blogger. Но методы борьбы с этим недугом едины.

    • АлаичЪ

      Вся лажа в том, что в доп. индексе лежат даже давно несуществующие и запрещенные к индексации страницы.

      Зачем это надо Гуглу я не знаю :(

      • NMitra (23 комм.)

        Удалите их вручную в веб-мастере Гугла. См. уже названный пост.

        • АлаичЪ

          Да, как вариант можно и удалить, я даже удалял некоторые страницы. Но если их тысячи, то в рукопашную тут уже не пойдешь :( Я даже хотел дать задание программисту, чтобы написал скрипт для быстрого удаления, но оказалось там нельзя обойти защиту от подобных автоматов.

  6. Пыф (1 комм.)

    Спасибо за статью. В индексе как раз висела лишняя страница со слешем на конце. Не знал, как убрать...

    Один вопрос:

    ### Определяем главное зеркало как site.ru
    # RewriteCond %{HTTP_HOST} ^www.site.ru [NC]
    # RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

    Вместо site.ru надо свой домен вписывать или нет?

    Небольшая неточность у вас:

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

    engine.php лежит в /engine/

    • АлаичЪ

      Разумеется, надо раскомментировать нужные строки и заменить site.ru на свой сайт.

      Да, и спасибо за найденную ошибочку, поправил в посте.

  7. Фруталити (5 комм.)

    Можно вопрос чуточку не по теме? Регулярным выражениям вы как учились? Я вот время от времени подступаюсь к ним, но нормальную литературу не вижу, а в примерах из интернетов недостаточно пояснений бывает. Хотелось бы дружеского совета :)

    • АлаичЪ

      Это о .htaccess вопрос? Я им не учился и я их не знаю :) Когда мне что-то надо сделать я курю мануалы, найденные в интернетах.

      Вот надо бы это как то собрать все в один материал, чтобы и себе и другим на будущее было руководство максимально понятное.

      Вот очень классное руководство по регуляркам — http://www.beget.ru/art9.html

  8. Max (8 комм.)

    Может подскажете что можно сделать в такой ситуации. Сайт на хосте *.arvixe.ru Яндекс индексировал так, что я не успевал статью дописать, как она уже в инексе была. Но надоел домен 3 уровня прикупил второго на *.me припарковал, сделал 301 редирект всех ссылок туда. В итоге старые ссылки из индекса повыпадали, новых нет уже с пол года. Робот заходит на главную страницу и дальше не переходит. В индексе 2 ссылки сам сайт и одна директория. Причем это только у Яндекса и Аппорта, с Google и Уahoo все нормально индексируют все даже что не нужно. Поубирал дубли ссылок как тут описано, в robots.txt прописал домен *.me, запретил переход на */arvixe.ru/ , прописал *.me/карту.xml Яндекс ее считывает регулярно ошибок нет, позагонял все страницы в Я-закладки, толку ноль. Может его просто домен *.me не устраивает? Так в Яндексе полно сайтов на этом домене. Что делать уже не знаю, разве, что Платону письмо еще не писал. Как Я-робота дальше первой страницы заманить не представляю, маслом сайт полить?

    • АлаичЪ

      Мутная ситуация, сходу и не знаю что порекомендовать.

      Но такая ситуация возможная если купленный домен в бане. Я, конечно, понимаю, что домены в зоне .me не столь популярны, чтобы можно было случайно купить брошенный и забаненный. Но тем не менее попробуйте.

      Добавьте сайт в панели вебмастера Яндекса и Гугла если еще этого не сделали, может там что-то прояснится. А заодно поставьте Яндекс Метрику и Гугл Аналитикс.

      А так не посмотрев сайт сложно сказать что к чему...

      • Max (8 комм.)

        Домен новый, только начали .me регить я его прикупил, у Яндекса в индексе основная страница и категория — был бы в бане выпал бы из индексации совсем, а в панели вебмастера Яндекса и Гугла есть конечно, PR-3 ТИЦ-0, добавлю еще сотню страниц, подожду с месяцок, если не пойдет пущу его на загран.траф... Сильно подозреваю что просто домен .me Платону не нравится, ну да бог с ним, за совет о Яндекс Метрике спасибо, попробую.

        • АлаичЪ

          Когда сайт в бане у него одна страница в индексе, обычно это главная.

          Попробуйте добавить новых страниц. Так же рекомендую размещать ссылки на новые публикации в соцсетях (Twitter, FB, можно еще где-нибудь).

          И настоятельно рекомендую написать в поддержку Яндекса с подробным описанием проблемы. Я, например, после общения с поддержкой вывел из бана несколько доменов :)

          Не забудьте потом рассказать о результатах, мне очень интересно в чем же дело.

  9. Marsel (2 комм.)

    Приветствую. Почитал статью, проникся, попробовал внести изменения на своем сайте. Возникла непонятка, если не сложно, поясните плиз.

    Начал с первого исправления .htaccess

    Вопрос 1: а site.ru надо оставлять как есть, или вставлять имя своего сайта? :) Ну нуб я, что поделаешь.

    Да и не в том вопрос, оставил как site, изменил на свой сайт — результат не изменился.

    Основное зеркало без www, раскомментировал строки 2-3.

    В результате на сайте, при входе в любую категорию, вылазит ошибка Not Found, а в адресе светится http://********.com/var/www/vhosts/**********.com/httpdocs/state

    А как с этим бороться?

    • АлаичЪ

      Ну разумеется надо заменять site.ru на свой домен, как иначе то :)

      Специально для таких вопросов сделал пометки в посте даже.

      В чем причина ошибки я не знаю, надо на деле смотреть. Но попробуйте все изменения делать по шагам. Сначала разбираемся с www и тестируем, потом разбираемся с /page/1 и тестируем, и т.д.

      Отпишитесь мне через форму обратной связи, будем разбираться с вашим сайтом.

  10. Marsel (2 комм.)

    Кстати заметил, что ряд категорий открывается так же даже при старом .htaccess :(

    • АлаичЪ

      Как так же? С ошибкой? Если одна и та же ошибка и со старым .htaccess и с новым, то явно дело не в .htaccess ;)

  11. Bubamara (3 комм.)

    АлаичЪ, вопрос не совсем по теме, но относится к DLE.

    Нужны ли теги к каждой публикации на сайте и само облако тэгов? Я их особо не использую, а если и есть, то они закрыты от индекса в роботс.тхт.

    Помогает ли это индексации сайта? Что порекомендуете вообще по этому вопросу?

    • АлаичЪ

      Я считаю, облако тегов — зло! Если оно и может хоть как-то пригодиться, то только для навигации пользователей. При этом стоит его закрывать от индексации в роботсе, как вы сами правильно делаете. Если же им никто не пользуется, то и держать на сайте не надо, для поисковиков это никак не поможет.

      • Вадим (12 комм.)

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

  12. Bubamara (3 комм.)

    АлаичЪ, спасибо за ответ.

    Просто на многих новостных сайтах видел тэги.

    Может следующий материал напишите о внутр. перелинковке?! Для индексации сайта.

    • АлаичЪ

      Да у меня у самого, например, на emofans.ru есть облако тегов, но оно лишь для помощи пользователей служит, в данном случае для поиска музыки по жанрам. То есть я теги прописываю только для определенных новостей. Они закрыты от индексации в noindex и страницы тегов закрыты в robots.txt

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

      Как-то так :)

  13. Салават (2 комм.)

    А вот вместо site.ru прописываем везде свой сайт? Или где помечено только?

    ### Определяем главное зеркало как site.ru (site.ru заменить на свой домен, например alaev.info)
    # RewriteCond %{HTTP_HOST} ^www.site.ru [NC]
    # RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
    ### Определяем главное зеркало как www.site.ru (site.ru заменить на свой домен, например alaev.info)
    # RewriteCond %{HTTP_HOST} ^site.ru$ [NC]
    # RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
    ###Определяем главное зеркало
    • АлаичЪ

      Разумеется надо менять в правилах. Либо в 2-3 строчках, либо в 5-6, в зависимости от того, что вам надо.

  14. Стас (9 комм.)

    Здравствуйте, у меня такая проблема, поисковики добавляют ссылки в индекс такого типа: http://site.ru/pop/shanson/ или http://site.ru/house/pred_prosluska/, а иногда бывают и такие: http://site.ru/pop/shanson//pred_prosluska/pop/house/.

    Подскажите пожалуйста что мне делать? DLE 9.0

    Писал в тех. под. Яндекса и мне ответили:

    "Видимо кто-то оставил ссылку на Ваш сайт именно в таком виде. Робот перешел по ней и проиндексировал страницу, так как она доступна на Вашем сайте (отдает код 200). В данном случае рекомендую Вам запретить индексирование не нужных Вам страниц в файле robots.txt или обратиться к системному администратору с просьбой настроить сервер таким образом, чтобы при обращении к несуществующим страницам Вашего сайта отдавалась ошибка 404."

    Я роботом уже закрыл (Disallow: */shanson/), но всё-равно не очень то и помогло. Может как-то их можно выделить в файле .htaccess, что бы небыло копий категорий.

    • АлаичЪ

      Вот о чем я и говорил, собственно!

      Проблему можно решить обновлением DLE до версии 9.3. Возьмите прямо сегодня и обновитесь ;) Исправится не только эта ошибка, но и множество других досадных косяков.

      • Стас (9 комм.)

        Я боюсь обновлятся, 100% что-то напортачу и буду весь день думать как это исправить.

        А как же модули, которые установленны на сайте и расчитаны для версии 9.0? Что с ними будет?

        И там ещё надо как-то свой шаблон подгонять под 9.3 :(

        • АлаичЪ

          Ну да, обновлять шаблон надо будет. Можно мануалом от разрабов воспользоваться, там написано что и где изменить надо.

          Модули совместимые с 9.0 совместимы и с 9.3.

          Обновление до 9.3 стоит того чтобы запариться.

          • Стас (9 комм.)

            А полегче способа не знаете?

            Просто я один с такой работой не справлюсь =(

            • АлаичЪ

              Если бы такой способ был, я бы обязательно о нем сказал.

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

  15. Salavat (2 комм.)

    Интересно, всё сделал как тут сказано, но заметил небольшой баг на своём сайте:

    Просмотр профиля выдаётся так:

    http://адрес сайта/путь к сайту/путь к сайту/путь к сайту/адрес сайта/public_html/user/admin

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

    Можете дополнить как исправить данный баг, т.к если заходить по прямой ссылке то всё норм:

    http://адрес сайта/user/admin

    Красиво страницы начали попадать в индекс, гуглу это очень как нравится.

    • АлаичЪ

      Такая ошибка появилась после внесения изменений, описанных в данном посте или это так и было?

      Мне кажется, что проблема в настройках сайта и, возможно, в шаблоне оформления, проверьте эти моменты.

    • KZ_WebMaster (4 комм.)

      Это надо код в шаблоне править) скорее у вас прописано так /user/ когда надо site.ru/user/и так далее во многих местах вы просто везде по переходите по сайту и наберется ваша большая ссылка таким образом.

  16. Axel (63 комм.)

    И еще одно. Как сделать редирект с

    http://site.ru/category

    на

    http://site.ru/category/

    Мне удобнее, если категории будут в конце со слешем. Да и разницы никакой не вижу. Главное чтобы дублей небыло.

    • АлаичЪ

      Я не нашел решения ставить слеш в конце. Убрать проще, а иначе появляются страницы вида .html/

      • Олег (5 комм.)

        А такое решение?

        # Редирект для категорий (чтобы в конце URL был /)

        RewriteBase /

        RewriteCond %{REQUEST_FILENAME} !-f

        RewriteCond %{REQUEST_FILENAME} !-d

        RewriteCond %{REQUEST_URI} !-f

        RewriteCond %{REQUEST_URI} !/$

        RewriteCond %{REQUEST_URI} !.html$

        RewriteCond %{REQUEST_URI} !.xml$

        RewriteRule (.+) $1/ [R=301,L]

  17. Leri7k (1 комм.)

    Здравствуйте. Действительно, не работает редирект с http://site.ru/page/1/ на главную, в 9.2 по крайней мере.

    И вот еще что. Как я понимаю, при вводе, например, http://site.ru/blogs/ должно перекидывать на http://site.ru/blogs, без слеша на конце. У меня вместо этого пишет "страница не найдена".

    • АлаичЪ

      По поводу /page/1/ исправил в посте, обновитесь.

      На счет /blogs/, видимо там особые правила реврайта в модуле, это в самом модуле дело :( Так как я им не пользуюсь, то проверить не могу.

  18. Axel (63 комм.)

    /page/1/ все равно не работает...

    • АлаичЪ

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

  19. Максим (3 комм.)

    У меня тоже /page/1/ ведёт на несуществующую. Движок 9.3. Где-то зарыта собака :)

    • АлаичЪ

      Все должно работать по той схеме, что я описывал в посте. Я туда правки вносил недавно.

      А вообще если не поможет, отпишитесь мне по почте, разберемся. Сразу же содержимое .htaccess скидывайте, чтобы оперативнее решить.

  20. FreakMurderer (3 комм.)

    А так не лучше для слешей ? И страницы вида .html/ не появляются

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^.]+)(?<!/)$ /$1/ [R=301,L]
  21. zennuk (14 комм.)

    При вставке в Дле 9.4 вот этот код:

    ### Определяем главное зеркало как site.ru (site.ru заменить на свой домен, например alaev.info)
    # RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
    # RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
    ### Определяем главное зеркало как www.site.ru (site.ru заменить на свой домен, например alaev.info)
    # RewriteCond %{HTTP_HOST} ^site.ru$ [NC]
    # RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
    ###Определяем главное зеркало
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.html HTTP/
    RewriteRule ^index.html$ / [R=301,L]
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
    RewriteRule ^index.php$ / [R=301,L]
     
    ### Убираем слеш в конце
    RewriteRule (.*)/$ $1 [R=301,L]
    ### Убираем слеш в конце
     
    ### Редирект с первой страницы на основную
    RewriteRule ^(.*)/1$ $1 [R=301,L]
    RewriteRule ^(.*)page$ $1 [R=301,L]
    ### Редирект с первой страницы на основную

    Показывает ошибку 404, если категорию открывать в меню, а когда убрать эту строчку все работает отлично

    ### Убираем слеш в конце
    RewriteRule (.*)/$ $1 [R=301,L]
    ### Убираем слеш в конце

    В чем проблема почему так?

    • АлаичЪ

      Пока не могу сказать в чем дело и связано ли это напрямую с DLE 9.4. Как только обновлю свои сайты сразу проверю и отпишусь.

  22. meMo (3 комм.)

    Внёс все изменения в .htaccess из данной статьи. Итог: после открытия /page/1/ или любой подобной выдаёт 404 с таким текстом:

    http://stalker-role.ru/home/логин/domains/stalker-role.ru/public_html/home/логин/domains/stalker-role.ru/public_html/home/логин/domains/stalker-role.ru/public_html/home/логин/domains/stalker-role.ru/public_html

    При открытии категорий выдаёт:

    http://stalker-role.ru/home/логин/domains/stalker-role.ru/public_html/название-категории

    Лечится путём отключения ЧПУ или изменение названия категории (дополнительное дублирование индекса, от которого мы якобы должны были избавится).

    Использовал стандартный .htaccess, заменял свою папку engine стандартной и заменял index.php стандартным — не помогает. В итоге по некоторым адресам выдаёт такую лажу, давай чини, Александр Алаев...

    P.S. DLE 9.3

    • meMo (3 комм.)

      Переустановка не помогла. После установки залил только старую папку uploads и темы (и естественно бэкап БД). Думаю проблема в БД, копаюсь...

      • АлаичЪ

        Дело в том, что браузер где-то кеширует это дело. Так что не надо никаких переустановок производить, достаточно открыть закрыть браузер.

        Так же возможно есть какие-то нестыковки с новым стандартным модулем появившемся в 9.3, который занимается исправлением URL.

        Я пока себе не ставил ни 9.3 ни 9.4, так что не могу точно сказать в чем проблема.

        У меня при шаманствах с .htaccess тоже возникает такая лажа, но после перезагрузки браузера исправляется. Так же возможно, есть некоторая проблема с наличием/отсутствием слеша на конце. Скоро у себя затестирую.

        • meMo (3 комм.)

          Всё обошлось перезагрузкой сервера (Apache), как я понял это всё дело со стороны сервера.

          Но всё-равно спасибо за ответ :)

          P.S. Заходил через разные браузеры и ОС уже после переустановки.

  23. Алексей (2 комм.)

    После того как убрали слеши, при переходе в профиль ошибка, закладки и непрочитанное тоже ошибка.

  24. АлаичЪ

    Обновился код в посте. Прошу всех проверить на соответствие!

    Изменения мелкие, буквально несколько символов изменилось, так что внимательнее!

  25. Артур (4 комм.)

    Делал все по инструкции, вылезает 404 ошибка. ДЛЕ 9.4

    • АлаичЪ

      Я пока еще ни один свой сайт не обновлял до 9.4, так что точно сказать в чем дело не могу. А что именно меняли? Инструкция то длинная и действий там много...

  26. Артур (4 комм.)

    Все по инструкции заменил. При переходе на страницу .../123/ переадресовывает на .../123, а та в свою очередь выдает 404 ошибку

  27. жора (3 комм.)

    Привет. Такая проблема на DLE 9.3.

    Использовал такой метод чтобы слэш остался:

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteCond %{REQUEST_URI} !index.php
    RewriteCond %{REQUEST_URI} !.[^./]+$
    RewriteCond %{REQUEST_URI} !(.*)/$
    RewriteRule ^(.*[^/])$ $1/ [L,R=301]
    RewriteRule ^page/1/?$ / [L,R=301]
    RewriteRule ^(.+)/page/1/?$ /$1/ [L,R=301]
    RewriteRule ^(.+/page/d+)$ /$1/ [L,R=301]

    После этого категория/ работает нормально, но категория без слеша — ошибка 404.

    Сделал бекап, запустил на локалке — все работает норм.

    Не подскажете куда копать?

    • АлаичЪ

      Перезагрузите Apache :)

      И еще, почему бы не заменить это:

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

      На это?

      RewriteRule ^(.*)/page/1$ /$1/ [R=301,L]

      Поясните в чем особенность вашего кода, пожалуйста, может я что-то не догоняю?

      • жора (3 комм.)

        Ставил и ваш код и свой. Разницу в них не вижу, по тому как не очень силен в хтаццесс :). Кароче суть в том что проблема осталась даже после перезагрузки. Еще варианты есть?

        • АлаичЪ

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

          • жора (3 комм.)

            Отписаться легко! Техподдержка дрянь. Одна баба и то... Кароч, может тут что посоветуете:

            Взял хостинг по дешевке, уже год лень сменить. В техподдержке одна девушка, походу блондинка. У меня тариф 500 мб. Сайт весит 100. Пропало 100-200, потом было занято 500 мб. Логи заняли или что х.з. Она не нашла, что жрет место и увеличила место до 1 гб. Когда это "что то" сожрало еще 500 мб. Как думаете какое решение? Правильно 1,5 гб. За месяц 2 гб. Теперь у меня вместо 500 мб — 3 гб, и с каждым днем все меньше и меньше :) Вот такая техподдержка. Как думаете, кто так кушает?

            • АлаичЪ

              Понятно, интересная ситуация.

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

              Во-вторых, бекапы делаются? Куда? Старые удаляются автоматом?

              Других причин быть не может...надо выяснить что с этими двумя вопросами.

  28. ssaid (2 комм.)

    У меня прописана директива Host в robots.txt, чтобы бот Яндекса склеил старый и новый сайт, и тогда дублирование страниц будет или нет?

    • АлаичЪ

      Лучше указать и в роботсе и сделать 301 редирект со старого сайта на новый. Так надежнее, заодно ссылки приклеются старые.

  29. timur (6 комм.)

    Здравствуйте!!! Помогите решить проблемку, в гугл вэбмастер:

    Повторяющееся метаописание — 572

    Повторяющиеся заголовки (теги title) — 352

    Данный пост поможет?

    • АлаичЪ

      Вам, в первую очередь, стоит изучить вот этот пост — http://alaev.info/blog/post/2373

      • timur (6 комм.)

        Спасибо. Но у меня вроде всё правильно. Вот пример из гугл вэбмастер:

        Страницы с повторяющимися заголовками (теги title):

        /id-название-новости.html

        /категория/id-название-новости.html — текущее ЧПУ.

        Вчера использовал хак редирект, то есть при обращении к /id-название-новости.html перенаправление к /категория/id-название-новости.html

        Но изменений не наблюдаю. Может стоит подождать подольше?

        Кстати? DLE 9.4

        • АлаичЪ

          Что за хак использовали? И зачем? В настройках DLE, начиная с версии 9.3 есть пункт, который как раз и выполняет такие редиректы. Называется он как-то так примерно — исправление неправильных url ЧПУ.

          Главное проверьте, что при заходе на неправильную страницу осуществляется редирект на правильную.

          В панели вебмастера моментальных изменений не будет, надо подождать месяц, а то и больше, все зависит от размера и популярности сайта.

          • timur (6 комм.)

            спасибо!!!

            значит будем ждать

            а что на счёт повторяющегося метаописаний?

            • АлаичЪ

              А повторяющиеся метаописания к каким страницам относятся? Страницы категорий, страницы пагинации или что?

              • timur (6 комм.)

                Примеры:

                /2011/08/26/

                /2011/08/27/

                /2011/08/29/

                Вот ещё:

                /news/news/id-новость.html

                /news/news/news/id-новость.html

                /psn/news/id-новость.html

                /soft/news/id-новость.html

                И ещё:

                /27-luafps3-v01-load-and-execute-lua-files.html

                /news/27-luafps3-v01-load-and-execute-lua-files.html

                Хотя редирект выполняется при переходе с /news/news/news/id-новость.html на /news/id-новость.html

                /2011/08/29/ — а тут так вообще материалы показываются.

                • АлаичЪ

                  Архивы /2011/08/26/, /2011/08/27/, /2011/08/29/ я бы вообще закрыл от индексации и ссылки на них с сайта убрал.

                  Проблема с /news/news/id-новость.html и /news/news/news/id-новость.html исправляется той настройкой, про которую я писал выше. Надо в админке DLE ее активировать и просто подождать месяц-два.

                  Когда это сделаете, проблема будет почти полностью исчерпана ;)

  30. Tim (2 комм.)

    Как я понимаю что если у меня версия 9.3, то мне все эти операции проделывать не надо? Попробовал вариант с файлом access — слетали переходы по страницам как в категориях так и на главной странице по новостям, делал все как указано, т.е. тупой копитпаст, в итоге пришлось все откатывать обратно (благо привычка Плюшкина дает плоды, все собираю)!

    • АлаичЪ

      С версий старше 9.2 возможны проблемы в части убирания конечного слеша. Но все остальное должно работать как надо.

      • Tim (2 комм.)

        Ну вот в том то и дело что отображается только главная страница, а все другие страницы стали вести на 404 страницу, поэтому и написал Вам об этом.

        P.S. Еще один вопрос, у меня портал site.ru — переход с новости ведет на новость на форуме forum.site.ru, вопрос вот в чем, может все таки сделать site.ru/forum чтобы у поисковиков было мнение вроде человек с поиска пришел на главную и остался на сайте, я к тому что — считают ли поисковики переход с сайта на форум (в моем варианте) как уход пользователя с сайта? Поиск на эту тему ничего не дал, поэтому решился спросить у Вас. Еще раз извиняюсь за то, что не по теме!

        Заранее спасибо.

        • АлаичЪ

          Лично я предпочитаю вариант site.ru/forum, так как все находится в пределах одного домена, и, соответственно, траст и все такое тоже будет складываться в одно "ведро", а не в два разных.

  31. ssaid (2 комм.)

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

    Прошу прощения может не туда пишу. Но у меня есть вопрос.

    Здравствуйте! Вычитал вот здесь webmarketing.by/poiskovaya-optimizatsiya/sokryitie-kontenta-ot-poiskovyih-sistem-pri-pomoshhi-javascript/ и Здесь seodiz.ru/hide-content

    Хотел реализовать это у себя на сайте, Но ни чего не получилось.

    Меня интересует можно ли в DLE 9.4 скрыть часть контента на странице сайта. вот как на этом сайте myonlinestudio.ru. Вот скрин savepic.net/2195471.htm выделенное красным при просмотре исходного кода НЕТ.

    Если роботы не выполняют ява скрипты, как с помощью ява скрипта можно что-то скрыть?

    • АлаичЪ

      Да, можно и на DLE такое провернуть. Но в комментарии долго расписывать придется, так что я этого делать тут на буду.

      Возможно это будет темой очередного поста. Напишите мне напоминание через feedback, чтобы я не забыл ;)

  32. MIRREXX (13 комм.)

    DLE 9.4 — не работают категории :)

    Теперь только со слешем в конце, а без него пишет ошибку!

    Как перезагрузить Apache?

    • MIRREXX (13 комм.)

      Нашел и решил проблему :)

      Открываем файл .htaccess который лежит в корне сайта и находим строчку:

      RewriteRule ^([^.]+)/$ index.php?do=cat&category=$1 [L]

      заменяем на:

      RewriteRule ^([^.]+)/?$ index.php?do=cat&category=$1 [L]

      Все работает!

      • АлаичЪ

        То есть теперь для DLE 9.4 (и 9.3 соответственно) категории работают и при убирании конечного слеша?

        • MIRREXX (13 комм.)

          У меня работает все кроме этого:

          ### Убираем слеш в конце
          RewriteRule ^(.+)/$ $1 [R=301,L]
          ### Убираем слеш в конце
           
          ### Редирект с первой страницы на основную
          RewriteRule ^(.*)/page/1$ $1 [R=301,L]
          ### Редирект с первой страницы на основную

          Просто теперь хотя бы работают категории без слеша в конце, раньше на DLE 9.4 выбивало ошибку!

          С дублями страниц вопрос еще актуален!

  33. виктор (2 комм.)

    Здравствйте, подсткажите в чем может быть проблема, у меня Яндекс индексирует дубль главной страницы, а именно два вида ссылки на нее, непосредственно сама главная- http://tvoipc.ru/, и ее дубль-tvoipc.ru/main/. Как это можно исправить.

    (Сейчас пробую переустановить админку, и сайт пока не доступен.)

    • АлаичЪ

      Вот уж не знаю откуда у вас эта страница взялась. Я впервые вижу такой дубль... Хотя, это, мне кажется, остатки от первой установки, где была такая категория.

      Тут может помочь обновление до DLE 9.4.

      • виктор (2 комм.)

        Дело в том, что у меня DLE 9.4. Если я пропишу в роботс — main/, не закрою ли этим главную страницу от индексации?

        • АлаичЪ

          Хм, странно тогда, что /main/ существует... Ну да ладно, прописать в robots.txt надо:

          Disallow: /main

          И все будет ок, главная будет продолжать индексироваться!

  34. gr (2 комм.)

    Здравствуйте, пытаюсь понять Вашу статью... Пока не получается, но по-видимому, самое понятное из всего, что смотрела раньше. Пока в процессе...

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

    Есть сайт на друпал, на котором стоит модуль генерации xml карты. Модуль глючит — примерно неделю все адреса нормальные, вроде site.ru/?q=abc, а потом — раз и после очередного крона все меняется на site.ru/index.php?q=abc. Соответственно, в поисковиках по много тысяч дублей. Посещаемость прыгает жутко. Дубли с index.php закрыты в robots.txt, но карта сайта периодически начинает указывать на них. Выкидывание карты почему-то существенно сказывается на посещаемости... Генерировать ее руками — как-то не кажется верным решением.

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

    Вот такие строчки стоят сейчас:

    RewriteCond %{REQUEST_URI} ^/index\.(.+)$

    RewriteRule ^.*$ http://%{HTTP_HOST}/ [R=301,L]

    Скажите, пожалуйста, не может ли это повлиять на то, что модуль со временем создает неверные ссылки в карте сайта? Мне хотя бы понимать где проблема — то ли моя глупость и мои же ошибки в .htacess , то ли модуль надо выкинуть, то ли на самом деле проблема на хостинге.

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

    • АлаичЪ

      Привет. Сразу могу сказать, что результаты генерации xml карты никак не могут зависеть от файла .htaccess, так как директивы .htaccess применяются на выходе, то есть когда запрашивается какой-то урл, он перестраивается в зависимости от правил в файле.

      А модуль карты сайта собирается url'ы из данных в БД, как то их формирует и выдает в файл. Так что проблема 100% в модуле.

  35. sanya pro (5 комм.)

    Народ если не работает

    ### Редирект с первой страницы на основную

    RewriteRule ^(.*)/page\/1$ $1 [R=301,L]

    ### Редирект с первой страницы на основную

    правте на этот

    RewriteRule ^(.*) page/1/?$ /$1 [L,R=301]

    • АлаичЪ

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

      Я, честно говоря, не знаю почему так может происходить :(

      PS Это я к тому, что предложенный вами вариант у меня не работает правильно.

  36. Тимур (6 комм.)

    Хэлп, понять не могу как такое возможно. Гугл ругается:

    Повторяющееся метаописание

    /34-sega-emulyator-picodrive-na-ps-vita.html

    /index.php?newsid=34

    Это одна и та же новость.

    • АлаичЪ

      Ну да, это и есть одна и та же новость, чего тут удивительного. Одна (первая) доступна по url'у с ЧПУ, вторая без.

      Удалите через панель вебмастера вторую и все будет окей.

  37. Artem (4 комм.)

    1. Кому нужно сделать редирект с категории на категория/, юзайте код:

    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !-f
    RewriteCond %{REQUEST_URI} !/$
    RewriteCond %{REQUEST_URI} !.html$
    RewriteCond %{REQUEST_URI} !.xml$
    RewriteRule (.+) $1/ [R=301,L]

    2. АлаичЪ, тут возникла идея, а как прописать rel="nofollow" для страниц /page/* ?

    3. Модуль под заказ вашему прогеру можно заказать? если он возмется конечно...

    • АлаичЪ

      Не понял, что именно подразумевалось под "прописать rel="nofollow" для страниц /page/*", но наверное хотелось бы добавить rel="nofollow" для ссылок в модуле пагинации, чтобы типа робот не ходил?

      Ну тогда ищем в посте заголовок "Убираем слеши из навигации по страницам генерируемые движком" и смотрим все пункты, которые там описаны, а где встречается "<a href=" делаем так "<a rel=\"nofollow\" href=".

      Модуль заказать можно, но сейчас Санек занят, у нас много дел ;)

  38. MIRREXX (13 комм.)

    Привет всем. У меня такой дубль появился:

    http://mobi-vision.ru/

    http://mobi-vision.ru/&

    Как понимать? :) Прописывал только это:

    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.html HTTP/
    RewriteRule ^index.html$ / [R=301,L]
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
    RewriteRule ^index.php$ / [R=301,L]
    RewriteRule ^(.*)/page/1$ $1 [R=301,L]

    Dle 9.4

    • АлаичЪ

      То что у вас появился такой дубль это никак не связано с тем, что вы вносили правки по моему руководству.

      Просто закройте его в robots.txt (Disallow: /&$) и спите спокойно ;)

      • MIRREXX (13 комм.)

        АлаичЪ, спасибо!

        Только поставил в роботс Вот так: Disallow: /&/

        Есть разница?

        Artem, отлиный редирект :) У меня все работает. Наконец с дублем категорий будет покончено!

        С Dle 9.5 взял? Там пишут это реализовано.

        Как считаете стоит на 9.5 переходить с 9.4?

        • АлаичЪ

          Разница есть между моим и вашим вариантом, и притом большая ;) Не буду долго объяснять почему, но мой вариант закроет дубль, а ваш нет! Так что поменяйте.

          Вариант редиректа от Артема не совсем правильный, но тем не менее рабочий. А в DLE 9.5 проверка реализована не через .htaccess разумеется, а в php файле, где, собственно, и формируются url'ы.

          Обновляться всегда стоит до последней версии, просто с этим бывают проблемы (доп. модули или просто правки движка), потому многие и не обновляются годами.

        • Artem (4 комм.)

          Если честно сам покопался немного, и погуглил немного. Сам тестировал на 8.3, пока обновляться не особо хочется :)

  39. mov260891 (3 комм.)

    Здравствуйте АлаичЪ, подскажите, пожалуйста, какую-нибудь замену этому:

    не работает — RewriteRule ^(.*)/page\/1$ /$1/ [R=301,L]

    не работает — RewriteRule ^(.*)/page\/1$ $1 [R=301,L]

    Вообще вызывает 500 ошибку — RewriteRule ^(.*) page/1/?$ /$1 [L,R=301]

    А то уже измучился :(

    • АлаичЪ

      Ну можно несколько варинатов испробовать:

      Например, такой:

      RewriteRule ^(.*)/1$ $1 [R=301,L]
      RewriteRule ^(.*)page$ $1 [R=301,L]

      Или вот такой:

      RewriteRule ^(.*)/1/$ $1 [R=301,L]
      RewriteRule ^(.*)page$ $1 [R=301,L]

      Первый это если в конце хочется убирать слеш, второй — слеш на конце остается.

      А еще вот вариант:

      RewriteRule ^page/1/?$ / [L,R=301]
      RewriteRule ^(.+)/page/1/?$ /$1/ [L,R=301]

      Попробуйте, а потом обязательно отпишитесь, это важно!

      • mov260891 (3 комм.)

        я так понимаю это три варианта, а не шесть? т.е нужно добавлять по два как у Вас?

        • АлаичЪ

          Разумеется это три варианта, а не шесть ;) Добавлять надо вместо того, что у вас не работает. То есть вместо одной строки, что у вас не работает, надо вставить две строки одного из вариантов, предложенных мной.

        • mov260891 (3 комм.)

          Ой, простите :) не внимательно прочел, все понял сам!

          1. Вариант со слешем работает (УУУРРРААА, за что Вам огромное спасибо!) как для site.ru/page/1/, так и для категорий site.ru/categories/page/1/

          Вариант без слеша, тоже работает.

          Проверено на dle 9.2

          2. У меня еще такой вопрос, есть ли смысл проделывать весь этот не простой путь по удалению слеша? Как сильно это может повлиять на выдачу?

          • АлаичЪ

            Я рад, что все заработало!

            По поводу стоит или не стоит убирать слеш — последний абзац из пяти пунктов в конце поста как раз для вас ;)

  40. MIRREXX (13 комм.)

    Добрый день!

    Обновился до 9.5 работает как часы :)

    Подскажите, в гугле для вебмастеров такие вот проблемы еще актуальны:

    Повторяющиеся заголовки (теги title):

    http://mobi-vision.ru/&/

    /&

    /

    (Это не как не может быть связано с модулем catface? просто вместо описания на этих сстраницах пусто)

    PS Disallow: /&$ поставил

    • АлаичЪ

      Нет, это никак не может быть связано с модулем catface, точно!

      / — это главная страница сайта.

      /& — это какая то левая страница, она у нас запрещена через Disallow: /&$

      /&/ — еще одна левая страница, ее надо запретить через еще один Disallow: /&/$

  41. Александр (9 комм.)

    Добрый день. Отличная статья, но начиная с 9.4 dle не подходит (убирание слеша в конце категории и страницы).

    Сайт на 9.4 и все статьи со слешем на постах и категориях. Яндекс почему-то проиндексировал все страницы категорий, тегов и постов со словом search на конце (/категория/под категория/search)(/tags/сам тег/search), и соответственно, все эти страницы находятся под ошибкой 404.

    Почему так? От куда берётся search? Неужели из-за слеша?

    • АлаичЪ

      Для DLE 9.4 необходимо поправить одну строчку в .htaccess файле, чтобы не выдавало ошибку, в этом комментарии написано все — #comment-6971

      А вообще если все правильно сделать, то в постах никак не могут появиться слеши на конце.

      Откуда взялся search я не знаю, это уже ваши какие-то ошибки, с правками в htaccess это не связано точно.

      • Александр (9 комм.)

        Слеши то пропадают,только вот страницы такие не открваются.И выше,описанный метод,#comment-6971 уже так и было настроено по умолчанию.

        • АлаичЪ

          Ну тогда можно сделать так — открыть engine/engine.php и найти там переменную $re_cat и вот в том районе будет условие в котором прописан php 301 редирект. Вот там надо будет убрать слеш завершающий.

          У меня просто сейчас нет доступа к файлам dle, потому сказать конкретнее не могу.

  42. Олег (2 комм.)

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

    http://site.ru/lastnews/page/1/

    http://site.ru/lastnews/page/

    http://site.ru/lastnews/

    http://site.ru/page/1/

    http://site.ru/page/

    http://site.ru/lastnews/1/

    Что нужно прописать .htaccess ? Что вы думаете по поводу этих страниц?

    • АлаичЪ

      Если проделать, то что я описал в посте, то страницы http://site.ru/lastnews/page/1/, http://site.ru/lastnews/page/ и http://site.ru/lastnews/1/ будут редиректиться на http://site.ru/lastnews/.

      А страницы http://site.ru/page/1/ и http://site.ru/page/ будут редиректиться на http://site.ru

      Следовательно — никаких проблем нет. А зачем вам lastnews понадобился, я не знаю, просто закройте в robots.txt этот раздел от индексации, вот так — Disallow: /lastnews

      • Surcho (16 комм.)

        АлаичЪ!

        Страница http://site.ru/page/ в dle 9.7 не дает редирект! В чем может быть проблема? Эта страница появилась в поиске.

  43. Олег (2 комм.)

    Вот мой рабочий вариант + всегда / закрывает

    Другие варианты не заработали.

    DirectoryIndex index.php
    RewriteEngine On
     
    # Редиректы
    RewriteRule ^page/(.*)$ index.php?cstart=$1 [L]
     
    # склейка сайта. Основной без www
    RewriteCond %{http_host} ^www.vipcenter.ws$
    RewriteRule ^(.*)$ http://vipcenter.ws/$1 [R=301,L]
     
    ###Определяем главное зеркало
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.html HTTP/
    RewriteRule ^index.html$ / [R=301,L]
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
    RewriteRule ^index.php$ / [R=301,L]
     
    ### Редирект с первой страницы на основную
    RewriteRule ^page/1/?$ / [L,R=301]
    RewriteRule ^(.+)/page/1/?$ /$1/ [L,R=301]
    ### Редирект с первой страницы на основную
     
    #301 redirect - Завершающий слэш
    RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|?)
    RewriteRule .* %1/ [R=301,L]
    • АлаичЪ

      Спасибо за комментарий, думаю, кому-нибудь обязательно пригодится.

      А я собираюсь отказываться по возможности от всех правок в .htaccess и делать все проверки и редиректы на php, так намного вернее и будет одинаково работать у всех и на любых серверах!

      Так что скоро обновлю пост.

    • NeedLe (22 комм.)

      Мне тоже только этот способ помог с редиректом. Спасибо

  44. АлаичЪ

    Друзья, читатели, все все все!

    Только что обновлен пост, полностью и глобально переработан, многие изменения очень важные!

    Рекомендую всем перечитать пост и обновиться.

  45. Александр (9 комм.)

    Всех приветствую и очень благодарю Алаева за его труд и, скорее всего, бессонные ночи, придумывая как оформить пост и что еще добавить. Низкий поклон...

    Есть вопрос: Вот мы убрали дубли, и все они, даже (page/...), перенаправляются на соответственно http://site.ru, http://site.ru/category/ и http://site.ru/cat/subcat/

    Тогда, продавая страницы в сапе, не получится ли так, что окажется мало страниц в индексе, ну допустим, page 1...2...3... и т.д., т.е. их не будет, а ведь если вместе с ними, то будет порядком 2-3 тысяч плюсом.

    Или, все таки, сапа эти page (ы) в другом виде увидит и страницы постраничной навигации останутся, что, соответственно, 2-3 тысячи страниц, с которых можно продавать ссылки.

    Спасибо за внимание...

    • АлаичЪ

      Чертовски правы на счет бессонных ночей — я как раз последние 3-4 ночи этим постом и занимался, все переделывал и переделывал, думал как лучше оформить...

      Но вы все таки не совсем уловили смысл поста. Перенаправления для страниц пагинации действуют только для первой страницы (http://site.ru/page/1/ или http://site.ru/category/page/1/), которая идентичная основной (http://site.ru/ или http://site.ru/category/), но другие страницы /page/2/, /page/3/ и т.д. ни в коем случае не затрагиваются, они остаются!

      Так что за свои проданные ссылочки в Сапе можете не беспокоиться ;)

      • Вадим (12 комм.)

        Страницы page/3/ и т.д. Чем они полезны, если не брать во внимание сапу? Повторяющиеся мета — описания? Может их переправить на основную категорию, добавив ей этим PR?

        • АлаичЪ

          Вообще то это навигация по сайту, тут слова полезно/бесполезно не применимы — это просто необходимо и должно быть так.

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

  46. Иван (1 комм.)

    Подскажи пожалуйста, может ты в курсе что за лажа с яндексом, из 50000 страниц в поиске, 10000 ошибка 404, и все почти такие http://сайт.ru/tags/%C0%ED%E4%F0%E5%E9+%CB%B8%E2%E8%ED/index.php, откуда берется этот index.php если без него то все работает, в общем просто хотел спросить может поможешь, кстати некоторые категории тоже с index.php на конце с 404 ошибкой, почитал я пост поправил у себя DLE 9.4, теги вообще запретил в роботсе!

    • Александр (9 комм.)

      Вот и у меня в тегах на конце search и в категориях так же.Причем в гугле все теги проиндексированы нормально,а яша совсем с ума сходит.В сапорте яшы ответили,что ошибка,конечно же,у меня.Интересно почему я вижу эти ссылки нормальными а яша именно так?Что формирует ссылку в теге движка на 9.4? Люди добрые помогите убрать проблему...

      • АлаичЪ

        Такс, ребята. Проблема у вас специфическая, но я покопался с часок и нашел выход. Я добавил код, который проверяет не только главную страницу сайта на наличие в конце index.php, но и все разделы, категории и т.д.

        Так что смотрите обновление поста, под заголовком "Убираем из адреса index.php..." Все должно работать как часы!

        • Александр (9 комм.)

          Вот спасибо большое.Вопросик эти редиректы только для index.php ?? Для search на конце тега это правило подойдет? В админ панели яндекса мои ссылки(Теги) выглядят,к примеру: /tags/Домашняя+Фотостудия+4/search

          т.е. search это не .php а директория,как я понимаю Как тогда тут быть?

          • АлаичЪ

            Да, то, что я написал работает только для index.php на конце любой категории или раздела.

            Для удаления search это не подойдет.

            Но для убирания /search в конце строки подойдет правило, которое надо прописать в .htaccess:

            Если необходимо оставить слеш на конце, т.е. /tags/Домашняя+Фотостудия+4/

            RewriteRule ^(.+)/search(/?)+$ /$1/ [R=301,L]

            Если слеш на конце не подразумевается (т.е. надо получить /tags/Домашняя+Фотостудия+4), то

            RewriteRule ^(.+)/search(/?)+$ /$1 [R=301,L]
            • Александр (9 комм.)

              Спасибо огромное за решение проблемы с search... Теперь буду ждать когда яндекс проиндексирует страницы. Отпишусь, что получилось.

              • АлаичЪ

                Ага, буду ждать.

                Тут еще важный момент — эти /search не должны быть закрыты от индексации в robots.txt, иначе робот не сможет понять, что там редирект стоит и, соответственно, ничего не изменится.

  47. MIRREXX (13 комм.)

    Добрый вечер!

    Спасибо Вам за прекрасные советы, которые действуют безотказно :)

    Вопрос не совсем по теме но связан с роботс.тхт. У меня прописана в роботс строка:

    Disallow: /uploads/

    Это значит, что все загружаемые на сервер файлы индексироваться не будут!

    Подскажите, как правильно записать в роботс, чтобы индексировались файлы картинок из папки /uploads/posts/, а все остальные были бы запрещены.

    Заранее очень благодарен.

    • АлаичЪ

      Напишите в robots.txt следующее:

      Allow: /uploads/posts/

      Disallow: /uploads/

      Именно в такой последовательности! Это правило запрещает скачивать все из /uploads/, кроме страниц или файлов начинающихся с /uploads/posts/

  48. sbvasyl (10 комм.)

    Просьба помочь и предложить еще варианты для "Редирект с первой страницы на основную"

    Для версии dle 9.2 подошел изначальный вариант:

    RewriteRule ^(.*)/1/$ $1 [R=301,L]

    RewriteRule ^(.*) page$ $1 [R=301,L]

    а для версии dle 9.0 не подходит ни один из вариантов:

    RewriteRule ^(.*)/page\/1$ $1 [R=301,L]

    RewriteRule ^(.*)/1/$ $1 [R=301,L]

    RewriteRule ^(.*) page$ $1 [R=301,L]

    RewriteRule ^page/1/?$ / [L,R=301]

    RewriteRule ^(.+)/page/1/?$ /$1/ [L,R=301]

    Дайте и еще варианты пожалуйста... жду.

    • АлаичЪ

      Должно подходить, разницы особой нет между 9.0 и 9.2. А у вас одинаково в обоих движках на конце url'а присутствует/отсутствует слеш?

      • sbvasyl (10 комм.)

        Да, слеши одинаково присутствуют на 9.0 и 9.2 (главная, категории).

        АлаичЪ, если не будет у Вас вариантов еще, может кто отпишет у кого версия 9.0 и какой вариант ему подошел ("Редирект с первой страницы на основную"), очень надо.

        • АлаичЪ

          Такс, я тут поколдовал с утра и решил, что .htaccess не самый надежный вариант. Потому написал php-редирект для случаев с /page/1/

          Открываем /engine/engine.php и находим:

          		if (($subaction == "showfull" or $subaction == "addcomment") and ((! isset ( $category ) or $category == ""))) {

          ВЫШЕ добавляем:

          	if ( ($config['allow_alt_url'] == "yes") && (intval($_GET['cstart']) == 1) && (strpos($_SERVER['REQUEST_URI'], '/page/1') !== false) ) {
          		$first_page_url = str_replace ( "/page/1", "", $_SERVER['REQUEST_URI'] );
          		header("HTTP/1.0 301 Moved Permanently");
          		header("Location: $first_page_url");
          		die("Redirect");
          	}

          А из .htaccess удаляем все правила, которые должны убирать /page/1/

          Проверяйте и отписывайтесь обязательно.

          • sbvasyl (10 комм.)

            АлаичЪ, спасибо! Этот вариант работает на версии 9.0. Следовательно вопрос — а на версии 9.2 тоже поменять (с .htaccess убрать, а внести изменения аналогично в engine.php)?

            • sbvasyl (10 комм.)

              Попробывал на версии 9.2 тоже так же поставить, все отлично! И рекомендую всем этот вариант (с engine.php), так как в варианте с .htaccess есть такой недостаток — если ввести адрес вида http://site.ru/page/1/ и нажать Enter, то редиректа на главную не происходит.

              Спасибо АлаичЪ еще раз!!! Думал не ответите, а даже отдельно написали, да и всем пригодится.

              Развития блогу! Успехов!

  49. Дмитрий (3 комм.)

    Здравствуйте. Возникла такая проблема. Какие-то непонятные личности начали ставить на меня ссылки вроде site.ru/67-dfsdfsdfsdf

    Если написать в урле site.ru/67-dfsdfsdfsdf.html то он исправит на site.ru/67-TRUE_NAME.html

    Однако без html он просто добавляет слеш на конце — site.ru/67-dfsdfsdfsdf/ и говорит, что 404 ошибка. В итоге в гугл тулс полно 404 ошибок, что не есть гуд.

    Есть ли решение такой проблемы?

    Т.е. такое условие проверки — что если урл начинается не с буквы а с цифры, то вконце подставлять .html

    Буду очень признателен если подскажете, спасибо.

    А, забыл добавить, нужно так же второе условие проверки, что если на конце уже есть .html — то подставлять его не нужно, разумеется...

    • АлаичЪ

      Все проще чем вы можете себе представить :) Никаких условий не надо.

      Открываем свой .htaccess, который лежит в корне и находим строку:

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

      Заменяем на:

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

      Далее находим строку:

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

      Заменяем на:

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

      И дело в шляпе ;)

  50. Анатолич (3 комм.)

    АлаичЪ, Здравствуйте! Мне нужно полностью убрать вывод тегов {tags} и архивов и годы публикации, чтоб они не работали, когда переходишь по ним, можно это сделать и как?

    Заранее спасибо, жду вашего ответа!

    • АлаичЪ

      Никогда не надо делать так, чтобы что-то не работало!

      Во-первых, удалите все ссылки и упоминания про эти разделы.

      Во-вторых, закройте их в robots.txt

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

      • Александр (9 комм.)

        Я думаю можно уже и форумок поставить,т.к. здесь очень много полезных сообщений,а комментариев набирается изрядно...Это я в виде пожелания))

      • Анатолич (3 комм.)

        Есть ли у Вас аська? Если можно, напишите или авторизуйте меня, мне срочно нужна ваша помощь!

        Аська (590630256). Жду Вашего ответа! Заранее Спасибо!

  51. Дмитрий (3 комм.)

    Привет! Пробежался по всему блогу — очень занятно! Спасибо) Особенно понравился последний пост про трафиковое продвижение.

    Не нашел раздела где спросить — решил спросить тут. А что думаешь про странички dle сайта типа page?

    Вроде

    site.ru/cat/page/2

    site.ru/cat/page/3

    site.ru/cat2/page/2

    site.ru/page/2

    site.ru/page/3

    Стоит их закрывать от индексации?

    При большом количестве рубрик и страниц получается просто огромное кол-во дублированного контента.

    И, на основе выше сказанного вопрос — как в постраничную навигацию прописать к ссылкам страниц (2-3-4-5-21-22-23) rel="nofollow"? Искал-искал код где они формируются, да так и не нашел...

    Спасибо!)

    • АлаичЪ

      Закрывать можно по желанию. Лично я не закрываю, а стараюсь писать анонсы короткими, чтобы они минимально дублировали текст полной новости. А вообще можно анонсы писать уникальными — это вообще будет круто, и никакого дублирования.

      Чтобы прописать к ссылкам в пагинации, надо посмотреть пункт в посте под названием «Убираем слеши из навигации по страницам генерируемые движком» и так вместо убирания слеша везде где встретится <a href= заменить на <a rel=\"nofollow\" href=

  52. Алексей (1 комм.)

    Добрый вечер!

    Возник вопросик. Хочу реализовать такую схему: заголовок новости — название категории.

    Ранее убрал от заголовка новости название сайта, но хочется чтобы после заголовка новости шло название категории, к которой относится новость.

    Ведь мы к каждой категории прописываем метатег title, есть возможность брать его описание и помещать после заголовка новости?

    Вот как понимаю нужный мне участок кода:

    if ($titl_e) $metatags['title'] = $titl_e . ' &raquo; ' . $config['home_title'];

    home_title как раз раньше отвечал за вывод после новости название сайта, что поместить вместо него, чтобы отображалось название категории?

    ----

    Заранее благодарен.

  53. Олег (4 комм.)

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

    После как выполнил все описанные инструкции, проверил работает ли все.

    Результат, работает все кроме предпоследнего пункта примера

    http://site.ru/123-news-name.html -> http://site.ru/truecat/123-news-name.html — не производится редикет.

    В чем может быть проблема?

    Спасибо.

    • АлаичЪ

      Проверьте правильность выполнения описанных инструкций. И если работает, например, это:

      http://site.ru/truecat/123-bla-bla-bla-name.html -> http://site.ru/truecat/123-news-name.html

      То должен срабатывать редирект и в вашем случае.

      • Олег (4 комм.)

        http://site.ru/truecat/123-bla-bla-bla-name.html -> http://site.ru/truecat/123-news-name.html — этот работает

        http://site.ru/123-news-name.html -> http://site.ru/truecat/123-news-name.html — все равно не пашет.

        Проверил все дважды.

        • АлаичЪ

          Это очень странно. Я только что еще раз проверил на своих сайтах — везде работает, притом, что версии движка на всех сайтах разные

          Даже и не знаю в чем может быть причина такого поведения :(

  54. sbvasyl (10 комм.)

    АлаичЪ, есть одна проблема, скорее индивидуальная, может кому пригодится тоже. У меня сайт переносился с укоза на дле и старые новости, вернее ссылки имели вид — сайт.ру/load/... и сайт.ру/loadsz/... где load и loadsz типа виртуальные каталоги на дле, которые на укозе были каталогами. Как следствие у меня получалось дублирование контента, одна новость по 3-м ссылкам. Если коротко, то я каталоги load и loadsz удалил и привел ссылки к виду соответственно как дле и как в ситемап. Но проблема такая — в кратких новостях стоят картинки-ссылки на полную новость с прописанным старым адресом, которого уже нет и отредактировать нет возможности да и файлов более 2000.

    Нужен редирект наверное 301 для дле с удаленных страниц на главную в .htaccess чтобы прописать.

    ***Нашел такой в интернете, для примера:

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^(.*)$ / [R=301,L]

    , но непонятно для чего там — REQUEST_FILENAME, f, d

    Хотел бы чтобы Вы как профи предложили свой вариант. Извините что отвлек. Заранее спасибо.

    • АлаичЪ

      RewriteCond %{REQUEST_FILENAME} !-f #применять RewriteRule, только если запрашиваемое имя файла не совпадает с именем какого-нибудь реального файла на сервере

      RewriteCond %{REQUEST_FILENAME} !-d #и не совпадает с именем какой-нибудь реальной директории

      То есть это условие на совпадение имен категорий и файлов на сервере. В таком случае правило RewriteRule сработает только для виртуальных страниц.

      Этого достаточно?

      • sbvasyl (10 комм.)

        Не работает, наверное не то. Скорее всего нужен редирект с несуществующего старого адреса новости на новый, по привязке к названию новости.

        К примеру, новость — Прикольные объявления и надписи. Скачать бесплатно

        Старый адрес — http://site.ru/load/prikolnye_objavlenija_i_nadpisi_skachat_besplatno/14-1-0-1970 (тут ошибка — "...публикаций на сайте не найдено...")

        Реальный, новый адрес — http://site.ru/yumor/201970-14-1-0-1970.html

        Можно такой редирект по названию новости сделать?

        • АлаичЪ

          Понятное дело, что не будет работать, правила изначально неправильные. Вы же спросили, что такое !-f и !-d — я ответил ;)

          Сделать редирект старой новости на новую в вашем случае не получится, потому что схожих частей в старом и новом адресе почти нет. По названию редирект сделать нельзя, можно только по URI.

          Но я могу подсказать как сделать редирект всех новостей вида http://site.ru/load/prikolnye_objavlenija_i_nadpisi_skachat_besplatno/14-1-0-1970 на страницу новой категории:

          RewriteEngine on
          RewriteBase /
          RewriteRule ^/load/prikolnye_objavlenija_i_nadpisi_skachat_besplatno/(.*)$ http://site.ru/yumor/ [R=301,L]
          • sbvasyl (10 комм.)

            Спасибо что уделили время... но в таком случае придется 2000 новостей прописать и направление редиректа соответственно в разные категории... неверное нереально... ладно пусть будет как есть. Еще скажите тогда правильно ли сделал... если я закрыл от индексации страницы (Disallow: */page/) где в крактой и есть эти битые ссылки (на первый страницах уже новые новости стоит)... то индексироваться эти неправильные ссылки не будут?

            • АлаичЪ

              В коде, который я привел в пример выше, надо будет прописать редиректы только для всех рубрик, но не для всех новостей.

              Если делать запрет в robots.txt, то надо делать два правила:

              Disallow: /page/

              Disallow: */page/

              Первое запрещает к индексации пагинацию внутри главной страницы сайта, типа site.ru/page/2/ и т.д.

              Второе предназначено для категорий, типа site.ru/category/page/2/ и т.д.

              • sbvasyl (10 комм.)

                "В коде, который я привел в пример выше, надо будет прописать редиректы только для всех рубрик, но не для всех новостей. "

                Если не трудно приведите пример как прописать например несколько рубрик (непонятно из-за того что там ссылка новости прописана, и как рубрики вставить, или нужно по одной новости из каждой рубрики).

                • АлаичЪ

                  Так все просто же ;)

                  RewriteEngine on
                  RewriteBase /
                  RewriteRule ^/load/old_category_1/(.*)$ http://site.ru/new_category_1/ [R=301,L]
                  RewriteRule ^/load/old_category_2/(.*)$ http://site.ru/new_category_2/ [R=301,L]
                  RewriteRule ^/load/old_category_3/(.*)$ http://site.ru/new_category_3/ [R=301,L]

                  и т.д.

  55. Владимир (1 комм.)

    Здравствуйте, очень понравилась ваша статья. Но почему-то появилась такая проблема. Когда ввожу http://site.ru/page/1/ (со слешем на конце), переправляет на главную страницу, а когда http://site.ru/page/1 (без слеша), то открывает пустую страницу со словом "Redirect". Это можно оставить или лучше как-то убрать? Заранее спасибо.

    • АлаичЪ

      Интересно, где-то сбой происходит... Спасибо за комментарий, я буду разбираться.

      А вы не волнуйтесь, это не страшно, а когда я найду решение, вы исправите.

      • sbvasyl (10 комм.)

        Таже проблема с http://site.ru/page/1 (без слеша) — Redirect... тоже буду ждать на решение...

        • АлаичЪ

          Это можно попробовать совместить с .htacess-редиректом, прописав строчки:

          RewriteBase /

          RewriteRule ^(.*)/1$ $1 [R=301,L]

          RewriteRule ^(.*) page$ $1 [R=301,L]

          • sbvasyl (10 комм.)

            Ошибка — 500 Server error.

            • АлаичЪ

              Печально... Будем думать дальше.

              • Ruslan (10 комм.)

                Я конечно не разбираюсь в этом но я попробывал сделать так:

                ### START Редирект с первой страницы на основную

                RewriteRule ^(.*)/page/1/$ $1/ [R=301,L]

                RewriteRule ^(.*) page/1/$ $1/ [R=301,L]

                RewriteRule ^(.*)/page/1$ $1 [R=301,L]

                RewriteRule ^(.*) page/1$ $1 [R=301,L]

                ### END Редирект с первой страницы на основную

                И вроде все работает, у меня до этого если вбивал http://technolog.kz/page/1 — без слеша писал Redirect

                Кто и что скажет может сказать по этой теме? Может я еще хуже сделал:D?

  56. Snake2010 (11 комм.)

    Отличный блог. Все, что описано в этой статье применил на dle 8.3. Все работает без проблем, в следствии чего решено много проблем. Но вот одна до сих пор остается и связана она с Google. В панели вебмастер есть такое — "Повторяющееся метаописание". Возможно ли как-то и их привести к логическому заключению. Получается, что если в метоописание к каждой категории прописать что-либо, то в Google они дублируются. При большом кол-ве страниц получается, сами понимаете, уйма повторяющихся "МетаОписаний". Что можно сделать? Никак не хочу закрывать страницы (page) от индексации. Заранее спасибо за любой совет.

  57. Snake2010 (11 комм.)

    Начал разбираться и заметил следующее, когда добавляешь новость только с коротким содержанием (без полного), то нет ссылки на полную новость, так как её в принципе нет. А Google ее каким то образом проиндексировал (полную новость) и теперь говорит, что у меня короткое метаописание, а его там не и быть не может. Вы меня понимаете? Что можно сделать?

    И заодно хоте прояснить следующий момент: в первой части Вашей статьи говорится о "Заголовках Title", а Google ругается на "Повторяющееся метаописание" это одно и тоже или Google говорит мне об "Описание для статьи"?

    • АлаичЪ

      Метаописание — это то, что содержится внутри meta name="description", а не то что вы подумали.

      Решение проблемы с повторяющимися метаописаниями я так же описывал в первой части руководства, пост постоянно обновляется и дополняется.

      • snake2010 (11 комм.)

        Несколько раз спокойно перечитал первую часть Вашей статьи, все разложил по полочкам. Но есть вопрос для уточнения.

        Вопрос к следующему написанию: "Теперь небольшой бонус, дополнение к предыдущим изменениям. Если у нашей публикации или категории не задан «Метатег title»... Если вы согласны с этим мнением, то игнорируйте предыдущие изменения и сразу приступайте к этому шагу." И идет описание что на что надо менять.

        Правильно ли я понимаю, что эти изменения не затрагивают Вашу запись от UPD 22.02.2012

        — "уникализировать содержимое тега meta name="description""

        Спасибо.

  58. lazy_bones (4 комм.)

    Здравствуйте. Парочка вопросов.

    1. Склеиваем адреса страниц /page/1/ с основными адресами (главной страницы или категории)

    и также посмотрел другие методы исключения дублей главной страницы, но не нашел вот такого

    site.ru/page/

    В Вашем варианте при открытии site.ru/page/1/ переходит на главную, а как сделать, чтобы и с site.ru/page/ также переходило на главную с 301 редиректом?

    2. Как исключить из индекса(или присвоить тег — мета-тег robots "noindex,nofollow" ) для страниц site.ru/category/1/, site.ru/category/2/, site.ru/category/3/ ...

    т.е. оставить в индексе только главную страницу категории, а остальные запретить к индексации?

    Спасибо, жду ответа.

    • АлаичЪ

      1. Странный случай, но да ладно, чтобы сделать редирект с /page/, необходимо в .htaccess прописать:

      RewriteRule ^(.*)page/$ $1 [R=301,L]

      2. Как это сделать я описывал в третьей части руководства — alaev.info/blog/post/3294

      • lazy_bones (4 комм.)

        1. Спасибо. Работает.

        2. Вы наверное не совсем поняли. Вы наверное про вот этот пункт в описании 3 — «Запрещаем индексацию разделов сайта при помощи мета-тега robots».

        Но там нет ничего про исключение страниц категорий и у меня написано не совсем верно.

        К примеру у нас раздел музыка — music.

        Страницы — site.ru/music/page/ и site.ru/music/page/1/ редиректим на основную страницу раздела т.е. на site.ru/music/, а вот остальные страницы категории site.ru/music/page/2/, site.ru/music/page/3/ site.ru/music/page/4/, site.ru/music/page/.../ запрещаем к индексации... Чтобы в индексе была только одна главная страница категории.

        • АлаичЪ

          Да я вас понял :) Добавил код, позволяющий закрывать страницы пагинации. Смотрите там же — в третьей части оптимизации DLE.

  59. Дмитрий (44 комм.)

    Сегодня обнаружил в индексе Яндекса страницу своего сайта такого вида:

    http://site.ru/razdel/16-nazvanie-novosti.html?do=register

    Как избежать такой проблемы? Как должен выглядеть редирект? DLE 9.5.

    • АлаичЪ

      Читайте вот этот пункт поста — «Устраняем проблему с дублированием полной новости по разным адресам».

  60. Александр (4 комм.)

    Есть ещё дублированные страницы, которые не указаны в данном посте. Я использую тип ЧПУ 1, версия движка 9,5. Это страницы типа http://site.ru/page,1,2,7847-news-name.html (обращаю внимания НЕ http://site.ru/category/page,1,2,7847-news-name.html, а http://site.ru/page,1,2,7847-news-name.html — тип ЧПУ 1). При этом комментарии к данной новости могут вообще отсутсвовать — это случается когда, например, спамеры накидали кучу комментов, поисковик проиндексировал эти страницы, а админы потом почистили комменты, но страницы остались и они доступны по данным адресам, выводя 100% дублированный контент.

    Применив все советы из данного топика, эта проблема всё-равно осталась. Буду крайне признателен, если Вы опишите её рещение.

    • АлаичЪ

      Проверил, действительно такая проблема имеет место быть. Я написал решение в третьей части руководства — http://alaev.info/blog/post/3294 — смотрите пункт «Редирект с несуществующих страниц пагинации комментариев на правильные».

      Проверяйте и отписывайтесь, работает ли...

      • Александр (4 комм.)

        Решение действительно работает... но лишь отчасти. Работают редиректы для страниц типа http://site.ru/page,2,7847-news-name.html, но лично у меня в индексе откуда-то взялись ещё и такие http://site.ru/page,1,2,7847-news-name.html (именно поэтому в прошлом комментарии я указал именно их) — вот для таких редирект не работает, а они также являются 100% дублями.

        • АлаичЪ

          Все работает, я как раз и проверял для адресов http://site.ru/page,1,2,7847-news-name.html, ведь именно так и формируются адреса страниц комментариев. Номер страницы комментария показывает вторая цифра, в данном примере она равна 2, а вот первая цифра (1) перманентная, она указывает страницу самой новости (если новость состоит из нескольких страниц).

          • Александр (4 комм.)

            У меня не работает. Версия 9.5

            http://vkontakt.info/page,1,4,57-lovivkontakte-lovi-v-kontakte-skachat-besplatno.html

            • АлаичЪ

              Да, как оказалось, что мое решение не работает, если страниц пагинации комментариев меньше двух. ПО быстрому решить не удалось, так что пока можно считать, что решения нет :)

              • Александр (4 комм.)

                Не сумели ли Вы найти решение? Для меня проблема попрежнему актуальна.

                • АлаичЪ

                  Нет, решения не нашел пока. Да и не искал, если честно.

                  Вот после обновления одного из сайтов буду снова вносить правки в файлы, там и придется разбираться. Когда решение найду, я сообщу.

  61. AnK (1 комм.)

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

    http://www.alawarstarter.ru/ и http://www.alawarstarter.ru/index.php

    • АлаичЪ

      Это плохо, потому что поисковик пессимизирует (понижает в поиске) страницы, которые имеют дубликаты.

  62. Иван (7 комм.)

    У меня поисковик вообще такое проиндексировал site.ru/index.php/ как решить, способы выше не помогают?

  63. Snake2010 (11 комм.)

    Обнаружилась следующая проблема. Если новость состоит из нескольких страниц, скажем 5, то перейти по ним не получается. Все время кидает на первую. Я так понимаю мы их склеили (что-то вроде этого http://site.ru/truecat/page,1,1,123-news-name.html -> http://site.ru/truecat/123-news-name.html) или возможно как-то еще. Как поступить в данном случае? Спасибо.

    • АлаичЪ

      А попробуйте вот такой код:

      			$true_link = $config['http_home_url'] . substr ($_SERVER['REQUEST_URI'], 1);
       
      			if (($true_link != $full_link) and (intval($_REQUEST['cstart']) ! >= 2) and (intval($_REQUEST['news_page']) ! >= 2) ) {
      				header('HTTP/1.1 301 Moved Permanently');
      				header ('Location: ' . $full_link);
      				die();
      			}

      И обязательно отпишитесь потом, это очень важно.

      • Snake2010 (11 комм.)

        Чтоб было правильное понимание, я нижеприведенный код заменил на предложенный Вами вариант

        $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)) {
        				header('HTTP/1.1 301 Moved Permanently');
        				header ('Location: ' . $full_link);
        				die();
        			}

        Выдает ошибку : Parse error: syntax error, unexpected '!' in /home/.../site.ru/public_html/engine/modules/show.full.php on line 156

        Пробовал несколько раз, одна и та же ошибка.

        • АлаичЪ

          Попробуем обойтись без знаков «!». Используйте следующий код:

          $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();
          			}
          • Snake2010 (11 комм.)

            При данном варианте на сайт захожу без проблем, но при входе на полную новость, браузер выдаёт сообщение о циклической переадресации.

            • АлаичЪ

              Тогда предлагаю обновиться до последней версии движка и эта проблема решится сама, без геморроя :) Это самый лучший вариант.

  64. Владимир (18 комм.)

    Сегодня обновился до версии 9,5.

    Выполняю первый пункт. Вставляю в файл .htaccess, для выбора основного зеркала:

    DirectoryIndex index.php
     
    RewriteEngine On
     
    RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
    RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

    Дальше в файле идет:

    # Редиректы
    RewriteRule ^page/(.*)$ index.php?cstart=$1 [L]

    Обновляю страницу и сразу же появляется ошибка:

    Internal Server Error
     
    The server encountered an internal error or misconfiguration and was unable to complete your request.
     
    Please contact the server administrator, webmaster@site.ru and inform them of the time the error occurred, and anything you might have done that may have caused the error.
     
    More information about this error may be available in the server error log.
     
    Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

    В чем может быть проблема?

    • АлаичЪ

      Это странно, потому что я сам вчера обновлялся до версии 9.5 и использовал это же правило. Посмотрите, совпадает ли адрес указанный в админке в настройках пункт "Домашняя страница сайта:" с вашим, там должно быть указано http://site.ru/

      • Владимир (18 комм.)

        Да, адрес совпадает. Все верно указано.

        Все, больше никаких вариантов нет почему не работает? :(

  65. Михаил (12 комм.)

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

    DLE 9.4 Обрабатывать неверные URL ЧПУ включен, но урлы без слешей вылезают

    Помогите, пожалуйста.

    • АлаичЪ

      Где они вылезают, и что происходит когда на них переходишь, доступна ли страница по адресам со слешем и без него?

      Если ничего в файлах движка не меняли, то такого быть просто не может.

      • Михаил (12 комм.)

        Без слеша появились в яндекс-вебмастере — Ресурс не найден (404)

        • Михаил (12 комм.)

          разобрался

          Открываем файл .htaccess который лежит в корне сайта и находим строчку:

          RewriteRule ^([^.]+)/$ index.php?do=cat&category=$1 [L]

          Заменяем на:

          RewriteRule ^([^.]+)/?$ index.php?do=cat&category=$1 [L]

          Теперь всё ОК.

  66. Кррава (1 комм.)

    Вот большое спасибо Вам, я эти исправления искал еще при выходе 9.2 дле, но потом забыл, сегодня же сайт вышел из под фильтра, и я увидел в поиске кучу дублей, то с слешем то без, да и раньше замечал что одна и та же новость доступна по разным адресам.

    Применил, спасибо!

  67. Александр (9 комм.)

    Всех приветствую.

    Уважаемый мастер АлаичЪ, прошу помощи сделать редирект с ссылок типа site.ru/http:/?newsid=id (id новости) на обычные ссылки типа site.ru/categori/id-сама статья.html

    Такие ссылки создаются модулем отправки ссылок новых статей в twitter.com, там они (site.ru/http:/?newsid=id) так и выглядят, а это будет дублированием контента в глазах ботов увидившие такие ссылки. Спасибо за Ваш труд.

    • АлаичЪ

      Точно скопируйте сюда URL'ы которые появляются, будем разбираться.

      • Александр (9 комм.)

        В предыдущем сообщении ошибка урлы вида не site.ru/http:/?newsid=id ,а site.ru/?newsid=id (без http)

        В твиттере ссылки такие http://pro-dlar.ru/?newsid=87 и перейдя по этой ссылке новость на сайте отображается именно под этой ссылкой,но настаящая ссылка имеет такой вид http://pro-dlar.ru/multimedia/87-aiseesoft-blu-ray-converter-ultimate-v-6236.html

        Вот и нужен редирект.

  68. Антон (10 комм.)

    АлаичЪ, очень полезная статья, но я наверно что то упустил. Подскажи:

    1. Что делать со слешами в дле 9.5? Обработка неверных урл включена, некоторые дубли страниц ушли, но не все. Новости открываются по адресу .../novost.html и .../novost.html/ Как с этим бороться? Или это не существенно?

    2. По теме дублирования контента, что делать с анонсами новостей? У меня это пара первых предложений из полной новости, и это получается частичное дублирование. У тебя я смотрю также. Не вредит ли такое частичное дублирование?

    3. И опять про анонсы. У меня одинаковые короткие новости встречаются: на главной, в категории, в подкатегории. То есть одинаковый текст встречается по разным адресам. Стоит ли об этом голову греть?

    Очень надеюсь на твой ответ!

    • АлаичЪ

      1. А откуда они такие появились новости с .html/ на конце? Сами слеш подставляли или поисковик такие адреса где-то нашел?

      2. Главное чтобы эти первые пара предложений не были основным содержимым полной новости. Другими словами — если основная часть контента не дублируется, то все нормально.

      3. Неприятно, конечно, но ничего не поделать с этим. Вы ведь не спроста выводите текст анонса, верно? Можно убрать его, оставив только заголовки, но будет ли это удобно и понятно посетителям, вот в чем вопрос!

      • Антон (10 комм.)

        1. Это я сам слеш подставил, проверить как откроется такая страница :)

        Спасибо за ответы!

        • АлаичЪ

          Ну если сам подставил, то не стоит волноваться, поисковик их сам не подставит :)

  69. Владимир (1 комм.)

    Ещё я заметил во всех версиях DLE дубликат по адресу site.ru/page/. Как исправить?

    • АлаичЪ

      Смотрите этот пункт — «Склеиваем адреса страниц /page/1/ с основными адресами (главной страницы или категории)» и выполните правки для .htaccess

  70. Диана (3 комм.)

    Здравствуйте ! Я Вам очень благодарна — закрыла и перенаправила где надо. Но у меня появилась одна беда сайт в бирже ссылок виден стал как ещё по адресу site.ru/?file=4589 Закрыла в robots.txt — адуриловка писала запрещён к индексации, А сегодня пишет проиндексирован и у него ещё возможны варианты — site.ru/?file=4589/page/1/ Хотя это «Склеиваем адреса страниц /page/1/ с основными адресами (главной страницы или категории)» — у меня благодаря вашей статье стоит и с другими страничками прекрасно работает... Даже не знаю что и делать, может подскажите...Буду очень благодарна Вам

    • АлаичЪ

      Добавьте в robots.txt строчку:

      Disallow: /*?file

      И все будет окей.

      • Диана (3 комм.)

        Спасибо за ответ, прописала в robots.txt, но вводя в аддуриловку -> site.ru/?file=4589 Пишется:

        <<Указанный URL уже проиндексирован.>>

        Может надо прописать <link rel="canonical" href="http://site.ru/> — как думаю это в main.tpl пишется, но именно где не знаю.

        Подскажите, пожалуйста, как быть в таком случае

        • АлаичЪ

          Ага, я немного не то правило указал, не так понял url.

          Пропишите под добавленной строчкой еще такую:

          Disallow: /?file

          • Диана (3 комм.)

            Ой уже не знаю и так сделала, пишется — <<Указанный URL уже проиндексирован.>> Главное если я подставляю другие цифры то пишется — <<запрещён к индексации>> Но как только -> site.ru/?file=4589 Снова проиндексирован и никакого запрета ... Может у них так как в кеше... Странно всё это . Заму чала Вас тоже ))

            • АлаичЪ

              Пропишите директивы и подождите недельку-две. А заодно можно еще проверить в панели вебмастера Гугла, может он что скажет.

  71. Дима (12 комм.)

    У некоторых сайтов подключены дополнительные модули. У меня список авторов — members. В роботе запись Disallow: /index.php?do=members. Гугл все возможные варианты сортировки авторов включил в поиск и с одинаковым титлом сотня страниц. Вот пример site.ru?do=members&orderby=cpublicA&count=30, site.ru?do=members&orderby=nameD&count=150, итд

    Можно ли это исправить? Как это прячется от поисковиков?

    • АлаичЪ

      Разумеется он включит в поиск эти страницы.

      В роботсе закрыты страницы начинающиеся с /index.php?do=members

      А в поиске ?do=members&orderby=

      На что вы рассчитывали в таком случае? =)

  72. Дима (12 комм.)

    Закрыл строчкой $do == 'members' OR в engine.php, появился <meta name="robots" content="noindex,nofollow" />

    Disallow: /index.php?do=members убрал. Правильно?

    У кого опыт есть, как скоро из гугла странички таким образом пропадают?

  73. Всилий (6 комм.)

    Уважаемый АлаичЪ, после переезда аккаунта с одного ip на другой, на сайте перестали показываться картинки. Движок DLE 9.2

    # Сам пост
    RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).(.*)$ 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]+),(.*).(.*)$ 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]+),(.*).(.*)$ 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})/(.*).(.*)$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4 [L]
     
    RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+) — (.*)$ index.php?newsid=$4&news_page=$2&cstart=$3 [L]
    RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+) — (.*)$ index.php?newsid=$3&news_page=$2 [L]
    RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+) — (.*)$ engine/print.php?news_page=$2&newsid=$3 [L]
    RewriteRule ^([^.]+)/([0-9]+) — (.*)$ index.php?newsid=$2 [L]
     
    RewriteRule ^page,([0-9]+),([0-9]+),([0-9]+) — (.*)$ index.php?newsid=$3&news_page=$1&cstart=$2 [L]
    RewriteRule ^page,([0-9]+),([0-9]+) — (.*)$ index.php?newsid=$2&news_page=$1 [L]
    RewriteRule ^print:page,([0-9]+),([0-9]+) — (.*)$ engine/print.php?news_page=$1&newsid=$2 [L]
    RewriteRule ^([0-9]+) — (.*)$ index.php?newsid=$1 [L]

    Если удаляю данные записи, то начинают работать. Но перестают осуществляться переходы на полную новость, а выходит ошибочная страница!

    Ну вот как-то так, уже и не знаю, что делать, просто ужасть.

    • АлаичЪ

      Так, по порядку:

      1. Используемый тип ЧПУ?

      2. Пример url'а на картинку

      3. Ну, и адрес сайта в студию...

      • Василий (6 комм.)

        Итак по парядку:

        — ЧПУ тип 2

        — Пример url картинок:

        http://www.omidesign.ru/uploads/posts/2012-05/507nawicvn.jpg

        ну и адрес перед uploads/posts/2012-05/507nawicvn.jpg

        Если ставлю ЧПУ тип 1 и убираю надписи скопированные выше, то картинки появляются, а если ЧПУ 2 и всё оставляю, то картинки исчезают! Хотя раньше всё работало как часики.

        • АлаичЪ

          А попробуйте после строки:

          # Сам пост

          Добавить эти:

          RewriteBase /
          RewriteCond %{REQUEST_FILENAME} !-f
          RewriteCond %{REQUEST_FILENAME} !-d
          • Василий (6 комм.)

            Попробовал — не помогло :(

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

            Удаляю — картинки начинают пахать, но полной новости нет, перекидывает на главную!

            • Василий (6 комм.)

              Я так понимаю, что проблема в чпу 2, так как с чпу 1 и картинка пашет и переход на полную новость осуществляется нормально.

              Жду помощи, уважаемые знатоки своего дела!

              Скажите, что ещё можно сделать?

              Может попробовать обновить движок до 9.6? Или не поможет?

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

              Редирект какой-то.

              • АлаичЪ

                А попробуйте заменить это:

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

                На это:

                RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*)$ index.php?newsid=$4&news_page=$2&cstart=$3 [L]
                RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)-(.*)$ index.php?newsid=$3&news_page=$2 [L]
                RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+)-(.*)$ engine/print.php?news_page=$2&newsid=$3 [L]
                RewriteCond %{REQUEST_FILENAME} !-f
                RewriteCond %{REQUEST_FILENAME} !-d
                RewriteRule ^([^.]+)/([0-9]+)-(.*)$ index.php?newsid=$2 [L]

                Есть мысль, что поможет.

  74. Сергей (5 комм.)

    Спасибо все работает.

    Не могу исправить ссылки вида http://site.ru/cat/page,1,7,10828-news-name.html при этом коментариев на странице нет. Стоит DLE 8.3

    • АлаичЪ

      Обновил пост, смотрите пункт "Устраняем проблему с дублированием полной новости ..."

      Пробуйте и отписывайтесь, все должно работать!

      • Сергей (5 комм.)

        Не помогло. Может я не правильно объяснил... т.е. в новости нет ни одного коментария, но DLE сгенерировала кучу ссылок на коментарии к этой новости http://сайт.ru/категория/17193-новость.html

        и получаются:

        http://сайт.ru/категория/page,1,13107,17193-новость.html#comment

        http://сайт.ru/категория/page,1,13106,17193-новость.html#comment

        ...

        http://сайт.ru/категория/page,1,2,17193-новость.html#comment

        http://сайт.ru/категория/page,1,1,17193-новость.html#comment

        Может Ваше решение работает на вновь опубликованные новости, а старые прийдется чистить в ручную?

        • Сергей (5 комм.)

          Забыл дописать, если эту новость запрещаешь комментировать сылки исчезают и соответственно заново появляются если разрешаешь

          • АлаичЪ

            Код из пункта "Устраняем проблему с дублированием полной новости по разным адресам" обновленный ведь используете?

            Там идет проверка на то включены ли комменты, проверка на номер страницы и на реальное количество страниц комментов к новости. Так что если к новости реально нет комментов, то должен срабатывать редирект на саму новость.

            Тестил это даже не версии 8.5. Возможно, в 8.3 что-то иначе, но я сомневаюсь. Наверное что-то неправильно делаете...

            • Сергей (5 комм.)

              Да, обнавленный код использую. Код вроде весь логичен, проверка комментариев и редирект на новость с этим ID Но только нет перенаправления и как объяснить движку что код рабочий не имею понятия )

              Тоже думал, что что-то я не правильно сделал, повторил операцию пару раз. Приходится просто отключать комментарии.

              • АлаичЪ

                Странно это все. Я бы порекомендовал обновиться, слишком уж DLE 8.3 устарел. Может быть даже в этом причина отказа.

                • Сергей (5 комм.)

                  О переходе думал, но хлопотно это шаблон переделывать и заново все настраивать.

                  А проблему с дублями решил удалив их ручками. Надеюсь они не появятся.

                  • АлаичЪ

                    Обычно удаление из панели вебмастера не избавляет от проблемы, они снова появляются, я пробовал уже :)

                    Все же подумайте о переходе. Могу посоветовать верстальщика, если надо будет обновить шаблон.

  75. Max (8 комм.)

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

    Я выполнил все пункты, двиг DLE 8.5. Возникла проблема с удалением слеша в конце новостей, а именно с RSS.

    Проблема в следующем: набирая http://site.ru/engine/rss.php, или http://site.ru/rss.xml меня не пускает на ленту, а все время перебрасывает на главную. А так все работает отлично.

    Прошу помочь разобраться с данной проблемой.

    • АлаичЪ

      Не смог у себя повторить эту проблему.

      Распишите конкретно и по шагам, какие правки вносились?

      • Max (8 комм.)

        Я вносил все правки касательно Вашей сео оптимизации — часть 2, т.е. полностью все проделал как Вы рассписали. Посмотрите пож. сайт — freshkino.com

        • Max (8 комм.)

          Нашел в каком месте проблема, так как при замене на оригинальный Rss лента работает, это — /engine/engine.php.

          АлаичЪ, я делал оптимизацию согласно всем твоим 3 частям. Может и не во 2 части проблема, а других. Огромная просьба помочь решить данную проблему, так как все мои онлайн RSS граберы находятся в замороженном состоянии. Заранее спасибо...

          • Max (8 комм.)

            Разобрался. У меня ранее стоял блок —

            // 301 редирект на главную с несуществующих левых страниц

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

            if ( ($dle_module == "main") && (intval ($_GET['cstart']) <= 1) && ($true_link_main != $config['http_home_url']) ) {

            header ("HTTP/1.0 301 Moved Permanently");

            header ("Location: {$config['http_home_url']}");

            die ("Redirect");

            }

            // 301 редирект на главную с несуществующих левых страниц

            Убрал его и работает RSS. Очень извиняюсь что побеспокоил. Прошу удалить все мои бестолковые комментарии. С уважением.

  76. Сергей (6 комм.)

    Хотел маленькую заметочку оставить для людей, которые работают с Sape. Имейте в виду что после оптимизации вы возможно пожертвуете частью купленных у вас ссылок. После оптимизации 30% ушли в ERROR причина "сервер редиректит на другую страницу". Вот теперь сижу и думаю пожертвовать баблом, или всётаки лучше сайт в порядок привести. Кстати может, заодно, посоветуете что?

    • АлаичЪ

      Я решил пожертвовать баблом, хотя иногда жалею, так как потери составили примерно 20к в мес. Ну да ладно, чего о плохом говорить, зато сайт в идеале теперь :)

      • Сергей (6 комм.)

        Выше комент, заметил, что про RSS написано, гляжу у меня Яндекс виджет отвалился( Перепробовал уже все варианты написание ссылки не хочет оживать( Чё делать то??)))

        • АлаичЪ

          Так в чем проблема? Конкретнее, пожалуйста.

          • Сергей (6 комм.)

            На сайте имеется кнопка, добавить виджет себе на гл. стр. Яши. Настраивается в кабинете яндекса "Виджет" Адрес был в виджете прописан http://sait.ru/catalog/ виджет брал с этого каталога 8 новостей и вставлял их в виджет к пользователю. Сейчас на месте виджета пишет "Ошибка при чтении RSS потока." Проблемы то нет, я его снесу, потеряю 20 юзеров но самых преданных) Проблема наверно в слеше. Хотя я попробовал и с ним и без него, и с www и без не как. Исчез после редактирования engine/engine.php

            • АлаичЪ

              Надо проверить работают ли rss потоки на сайте, например site.ru/rss.xml, возможно, так же site.ru/catalog/rss.xml. Заодно проверить соответствующие настройки движка.

              • Сергей (6 комм.)

                Видимо я гоню. Закинул не модифицированный файл engine.php не чего не изменилось. Получается проблема раньше возникла, до редактирования. Просто я видимо только заметил. А можно Вас попросить, если не затруднить гляньте одним глазком что может быть. Мне кажется проблема в кодировке. Так как перехожу по ссылки http://sait.ru/engine/rss.php всё в квадратиках. Сайт в форму добавил. Буду очень признателен, если посмотрите. Спасибо.

                • АлаичЪ

                  Мне вообще ничего не показывает, пишет что ошибка кодировки и все.

                  Так что надо вам вспоминать, что делали, что меняли, какие модули ставили и т.д.

                  Но, сразу могу сказать, эта проблема не от правок, что описаны в моих постах.

  77. Вова (1 комм.)

    Привет всем, возникла у меня проблема, у кого есть пути решения. Вообщем я убрал id новости у себя на сайте, двиг Dle 9.2 все подправил, все работает, но появилась ошибка при переключении комментарий,т. е вторую страницу и все последующие он выдает как страница не существует, где исправлять ситуацию подскажите пожалуйста кто знает.

    • АлаичЪ

      Сами себе проблему создали... Придется самостоятельно ее и решать...

      • Слава (1 комм.)

        Подскажите пожалуйста как бороться, нигде решения проблемы нет, единственное что интересно, что не могу подобрать ссылку на вторую страницу с комментариями, т.е. если внимательно посмотреть, то http://site.ru/категория/page,1,2,140-stranica.html#comment не работает потому что стоит id, но если ссылка такая http://site.ru/категория/page,1,2,stranica.html#comment без id все равно не работает, также выдает страницу ошибки, хотя по идее должна. Подскажите, а то приходится все комментарии помещать на одной странице, но это совсем мне не нужно.

        • АлаичЪ

          Не понял. Вы тоже поддались массовому идиотизму, избавившись от id в новостях? Если да, то я вам тут не помощник.

  78. Mx2 (2 комм.)

    Здравствуйте, подскажите пожалуйста после того как я выполнил

    Пункт "Убираем index.php из адреса главной страницы и страниц категорий" действительно перекидывает с http://site.ru/index.php на http://site.ru/ , но зато теперь что на главную что в категориях можно обращаться по любому адресу

    К примеру:

    http://site.ru/любой_текст.php

    http://site.ru/category/любой_текст.php

    Что естественно еще хуже. Подскажите как исправить данную проблему?

    • АлаичЪ

      Можно подумать, раньше такого не было?

      У вас в панели вебмастера появляются ошибки http://site.ru/любой_текст.php, если нет, то зачем сочинять тогда?

      Попробуйте прописать, может поможет :)

      RewriteRule (.*)/([^/]+)\.php$ $1 [R=301,L]

      • Mx2 (2 комм.)

        Такая проблема появляется только после добавления кода:

        ### Редиректы с site.ru/category/index.php на site.ru/category/ и др.
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_URI} (.*)index.php$
        RewriteRule ^(.*)index.php$ $1 [R=301,L]
        ### Редиректы с index.php на сайт
        RewriteBase /
        RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
        RewriteRule ^index.php$ / [R=301,L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /index.php [L]

        То есть без этого кода стандартно, к примеру, главную страницу, можно было открыть по адресам http://site.ru/ и http://site.ru/index.php

        Но если вписать адрес, например, http://site.ru/любой_текст.php, то сайт не открывался, а выдавалась ошибка:

        404 Not Found The requested URL /любой_текст.php was not found on this server.

        После добавления же этого кода в .htaccess, исправилась проблема — перебрасывание с index.php на главную, то есть перебрасывает с

        http://site.ru/index.php на http://site.ru/ — все как надо.

        Но теперь если вписать любое слово с расширением .php, к примеру, http://site.ru/любой_текст.php или http://site.ru/indexxxxx.php, то на главную уже не перекидывает, а просто остается такой текст в url.

        Тоже самое и для категорий.

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

        Мой сайт пока что еще находится на денвере, поэтому за вебмастер не могу ничего сказать.

        Извините, конечно, за такие вот сочинения, но проблема остается и хотелось бы очень ее решить с вашей помощью.

        Ваши уроки очень понравились, полезного масса, так что респект вам за это!

        • АлаичЪ

          Если код из моего предыдущего комментария не помогает, то у меня на данный момент больше идей нет :(

  79. Andrey (8 комм.)

    Здравствуйте уважаемый АлаичЪ. Сегодня на DLE 8.5 посетитель обнаружил ошибку что нельзя отредактировать свой профиль, все время отбрасывает назад в старый и ничего не изменяется. Попробовал я и мой тоже не меняется.

    Проблема в этом:

    ### START Убираем слеш в конце

    RewriteRule ^(.+)/$ $1 [R=301,L]

    ### END Убираем слеш в конце

    Убираю его и профиль редактируется, ставлю и опять не изменяется.

    Подскажите как решить проблему.

    С уважением к Вашему труду...

    • АлаичЪ

      А попробуйте заменить в файле engine/modules/profile.php строчку:

      	if( $config['allow_alt_url'] == "yes" ) $link_profile = $config['http_home_url'] . "user/" . urlencode( $row['name'] ) . "/";

      На такую:

      	if( $config['allow_alt_url'] == "yes" ) $link_profile = $config['http_home_url'] . "user/" . urlencode( $row['name'] );
  80. VS (10 комм.)

    Из-за вот этого:

    ### Редиректы с index.php на сайт
    RewriteBase /
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
    RewriteRule ^index.php$ / [R=301,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    Яша ругается при подтверждении прав на сайт через .txt. Что не есть хорошо. Вот что он пишет:

    Метод проверки при помощи текстового файла неприменим, т.к. ваш веб-сервер отвечает кодом 200 на запрос несуществующей страницы

    Попробуйте исправить ошибку и повторить проверку или выберите другой метод подтверждения

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

    • АлаичЪ

      Выводы вы сами делайте. У меня все замечательно работает и никто ни на кого не ругается.

      Если у вас возникли проблемы, то они возникли потому, что вы что-то напартачили, а не я. Не так ли?

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

      • VS (10 комм.)

        Что можно напортачить, если проблема конкретно в вышеуказанных мною строках:

        Они находятся в файле .htaccess — яндекс выдает ошибку!

        Убираем эти строки из файла .htaccess — права подтверждаются без проблем!

        Конечно же, можно не заморачиваться с подтверждением прав через txt, а просто добавить нужный код в head.

        • АлаичЪ

          Не в этом беда. Достаточно понимать код: первые две строки — там четко написано условие, если идет GET запрос к файлу /index.php, то создаем редирект на просто домен site.ru/. Следующие три строки проверяют не существует ли реального файла index.php на сервере в директории, и если не существует, то просто обрезаем в адресе index.php (с редиректом на обрезанный адрес, разумеется).

          Что не так?

  81. Виталий (3 комм.)

    Приветствую!

    Как решить данную проблему в комплексе:

    Дублирование главной страницы сайта по адресам http://site.ru/page/1/,http://site.ru/page/2/,http://site.ru/page/3/...http://site.ru/page/n/ и http://site.ru/

    Дублирование основной (первой) страницы категории по адресам http://site.ru/category/page/1/ и http://site.ru/category/

    То есть для категорий ничего не меняется (редирект только с http://site.ru/category/page/1/), а вот для главной сделать редирект со всех страниц. Заранее благодарен за помощь.

    • АлаичЪ

      Вам в помощь — http://alaev.info/blog/post/3294 — "Редирект с несуществующих страниц пагинации на правильные и существующие"

      • Виталий (3 комм.)

        По той инструкции редирект начинает работать с http://site.ru/page/29/. В настройках указан вывод по 10 новостей, всего на сайте 280. Отсюда делаю вывод что данный параметр где-то отмечен. Но как же решить данную проблему не в ущерб категориям?

        • АлаичЪ

          Не понял идеи. Разумеется, если на сайте 280 новостей, по 10 на каждой странице, то как минимум 28 страниц должно существовать. А 29-ой(и всех последующих) уже не существует, следовательно с них и делаем редирект.

          • Виталий (3 комм.)

            суть в том, что на главной вообще нет навигации и все адреса типа http://site.ru/page/n/ ведут на одну и ту же страницу-главную. В категориях же есть навигация. В таком варианте возможно что-то сделать?

            • АлаичЪ

              Могу предложить вот такой вариант, должно сработать.

              Открываем все тот же файл /engine/engine.php и находим:

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

              НИЖЕ добавляем:

              // 301 редирект на главную с адресов страниц пагинации
              			if ( ( $config['allow_alt_url'] == "yes" ) && (strpos($_SERVER['REQUEST_URI'], 'page/') !== false) && ($dle_module == "main") ) {
               					header("HTTP/1.0 301 Moved Permanently");
              					header("Location: {$config['http_home_url']}");
              					die("Redirect");
              			}
              // 301 редирект на главную с адресов страниц пагинации
  82. Денис (4 комм.)

    Добрый день! А подскажите как сделать редирект со страницы index.html на главную?

  83. poetry (12 комм.)

    Появился у адреса хвостик в виде: ?subaction=userinfo&user=admin

    Не знал как на странице userinfo в title вместо admin > название сайта вывести полное имя, изменил логин на кирилицу, сделал такой редирект.

    Redirect 301 /user/admin/ http://site.ru/user/%D1%E2%E5%F2%EB%E0%ED%E0+%D1%EA%EE%F0%E8%EA/

    Получаю на выходе http://site.ru/user/%D1%E2%E5%F2%EB%E0%ED%E0+%D1%EA%EE%F0%E8%EA/?subaction=userinfo&user=admin

    чпу 1 дле 9,6 рекомендации по устранению дублей выполнил. Так появятся новые? Кто-то обещал свою версию робота для дле показать.

    • АлаичЪ

      Хвостик появился потому, что перед строкой редиректа:

      Redirect 301 /user/admin/ http://site.ru/user/%D1%E2%E5%F2%EB%E0%ED%E0+%D1%EA%EE%F0%E8%EA/

      Надо добавить важную строку:

      RewriteBase /

      После этого все будет работать как надо.

  84. Валентин (4 комм.)

    Устраняем неразбериху с категориями их вложенностью и слешем / на конце («Обрабатывать неверные URL ЧПУ»)

    Добрый день. Не могли бы вы чуточку дополнить данный хак. Во всех случаях он отрабатывает корректно, за исключением одного — когда URL начинается на /page/ не ваш хак, не встроенный в 9.6 не обрабатывает данную ссылку, а просто открывает главную с номеров навигационной страницы (пагинации) — (если он указан после page, иначе просто главная).

    Пример: http://www.site.ru/page/18/категория_авто/подкатегория_хонда/категория_велосипед/категория_мото/

    В браузере будет отображена информация со страницы (http://www.site.ru/page/18/) — а в адресной строке останется тот же перемешанный адрес.

    PS Не знаю от куда, но у меня таких дублей накопилось очень много...

    PPS Живой пример http://dle-news.ru/page/10/extras/uroki/pressrelease/DAZHE_NE_SUWESTVUJUWIJ_RAZDEL/

  85. Денис (4 комм.)

    АлаичЪ, подскажите, пожалуйста, почему при изменении страницы engine.php (для того, чтобы убрать дубль page/1) вставляю

    ///

    if ( ($config['allow_alt_url'] == "yes") && (intval ($_GET['cstart']) == 1) && (strpos ($_SERVER['REQUEST_URI'], '/page/1') !== false) ) {

    $first_page_url = str_replace ( "/page/1", "", $_SERVER['REQUEST_URI'] );

    header ("HTTP/1.0 301 Moved Permanently");

    header ("Location: $first_page_url");

    die ("Redirect");

    }

    ///

    и получаю пустую страницу с надписью Redirect.

    Если удалить строку die ("Redirect"); то открывается страница site.ru/page/1

    Может что-то не так делаю?!

    • АлаичЪ

      Значит где-то противоречие возникает. Надо в браузере FireFox установить плагин HttpFox. В плагине нажать на Start и перейти по адресу с /page/1, и будет видна цепочка переадресаций. Сразу станет понятно, куда происходит редирект и почему он получается циклическим (ведь причина отображения Redirect именно в этом).

      • Михаил (2 комм.)

        У меня с при редиректе с http://site.ru/page/1 перенаправляло на "Redirect".

        Решение: в .htaccess после

        ### START Редирект с первой страницы на основную

        RewriteRule ^(.*)/page/1/$ $1/ [R=301,L]

        RewriteRule ^(.*) page/1/$ $1/ [R=301,L]

        ### END Редирект с первой страницы на основную

        ДОБАВИТЬ

        RewriteRule ^(.*)/page/1$ $1/ [R=301,L]

        • Михаил (2 комм.)

          извиняюсь, этот способ не рабочий, у меня кеш глюканул(

        • АлаичЪ

          Ну так тут очень важным моментом будет наличие или отсутствие слеша на конце. Будьте внимательны.

      • Денис (4 комм.)

        АлаичЪ, установил этот плагин, но дело в том, что в мозиле вообще никуда не переадресовывает... проверил в хроме и в опере ситуация такая. как описал выше. Что-то я не пойму?!

        • АлаичЪ

          Не знаю тогда в чем дело, тут конкретный пример надо смотреть. На словах это не объяснить.

  86. LERR (6 комм.)

    Еще для этого нужно редирект сделать

    http://site.ru/index.php?do=cat&category=subcat -> http://site.ru/cat/subcat/

  87. VIC (7 комм.)

    Добрый день! А как исключить такой вид

    сайт/категория/новость

    сайт/новость

    ЧПУ тип 2 двиг 9.2

    • АлаичЪ

      А вы правки описанные в посте проделали?

      • VIC (7 комм.)

        Да все сделал, прошло время в гугл вебмастере появились новые задвоенные ссылки. Может стоит подождать и они удалятся

        • АлаичЪ

          А сами эти страницы, которые надо "убить" сайтом отрабатываются нормально, то есть редирект на правильные страницы идет? Если да, то надо ждать пару недель, чтобы в панели вебмастера начали уменьшаться ошибки.

          • VIC (7 комм.)

            нет, страницы открываются и так и так без редиректа

          • VIC (7 комм.)

            Еще раз проверил все правки, именно эту я не добавил. Теперь редирект проходит нормально. Большое спасибо!!!!

  88. Atway (8 комм.)

    После добавления

    [code]### Редиректы с site.ru/category/index.php на site.ru/category/ и др.

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteCond %{REQUEST_URI} (.*) index\.php$

    RewriteRule ^(.*) index\.php$ $1 [R=301,L]

    ### Редиректы с index.php на сайт

    RewriteBase /

    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/

    RewriteRule ^index\.php$ / [R=301,L]

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule . /index.php [L][/code]

    начинается черт-пойми-что:

    -новости не открываются — редирект на главную

    -урл категорий и страниц пагинации отображаются в адресной строке, но все равно видим главную

    Версия 9.6

    • Atway (8 комм.)

      даже точнее нашлась проблема:

      "### Редиректы с index.php на сайт" — после этого куска

      • АлаичЪ

        Значит что-то не так сделали. У меня ведь (да и не только у меня) все работает замечательно.

  89. AlexSilver (4 комм.)

    Вопрос про:"Склеиваем адреса страниц /page/1/ "

    Если пишем www.**.ru/page/1/ — редиректит отлично, а если писать www.**.ru/page/1 — без слеша замирает на пустой странице и в левом верхнем углу просто написано Redirect. Ошибся я или ?

    • АлаичЪ

      Попробуйте вместо:

      ### START Редирект с первой страницы на основную
      RewriteRule ^(.*)/page/1/$ $1/ [R=301,L]
      RewriteRule ^(.*)page/1/$ $1/ [R=301,L]
      ### END Редирект с первой страницы на основную

      Сделать так:

      ### START Редирект с первой страницы на основную
      RewriteRule ^(.*)/page/1/$ $1/ [R=301,L]
      RewriteRule ^(.*)page/1/$ $1/ [R=301,L]
      RewriteRule ^(.*)/page/1$ $1 [R=301,L]
      RewriteRule ^(.*)page/1$ $1 [R=301,L]
      ### END Редирект с первой страницы на основную
  90. azarro (1 комм.)

    Для ссылок вида http://сайт.ру/tags/4×4+Club , не присходит редерикта на адрес вида "http://сайт.ру/tags/4×4+Club/"

    • АлаичЪ

      Попробуй такую штуку добавить в htaccess:

      RewriteRule ^(.*)tags/([^/]*)$ http://site.ru/tags/$2/ [R=301,L]
  91. Александр (2 комм.)

    Привет! Как лучше справиться с паразитными адресами вида:

    — http://domen.ru/?11111

    — http://domen.ru/index.php/1111

    — http://domen.ru/seriyaecofr.html?11111

    Чтобы они отдавали 404, к примеру?

  92. AlexP_RUS (24 комм.)

    Здравствуйте, нашёл дубль главной страницы вида site.ru/page/, Вы как-то уже тут советовали прописать в .htaccess: RewriteRule ^(.*) page/$ $1 [R=301,L]

    Я прописал ниже этих:

    RewriteRule ^(.*)/page/1/$ $1/ [R=301,L]

    RewriteRule ^(.*) page/1/$ $1/ [R=301,L]

    Но эти то редиректят, а вот на странице site.ru/page/ попрежниму редиректа нет, дубль остаётся.

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

    Может я не туда прописал RewriteRule ^(.*) page/$ $1 [R=301,L] ?

    • АлаичЪ

      Замените свой вариант на такой:

      ### Редирект с первой страницы на основную
      RewriteRule ^(.*)/page/1/$ $1/ [R=301,L]
      RewriteRule ^(.*)page/1/$ $1/ [R=301,L]
      ### Редирект со страницы без номера
      RewriteRule ^(.*)/page (/?)+$ $1/ [R=301,L]
      RewriteRule ^(.*)page (/?)+$ $1/ [R=301,L]
      • AlexP_RUS (24 комм.)

        Добавил эти две строки, но к сожалению стала выдаваться ошибка: 500 Server error.

        Есть ещё соображения как исправить эту проблему?

        • АлаичЪ

          Да блин, гребаный валидатор. Там не должно быть пробелов в строках. Скопируй снова, я убрал пробелы в ненужных местах.

          • AlexP_RUS (24 комм.)

            Тоже самое...

            и ещё я сейчас заметил, что на странице типа /page/1 написано на белом фоне "Redirect" и всё.

            • АлаичЪ

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

  93. belov (8 комм.)

    Здравствуйте подскажите как сделать редикт со страниц http://сайт/page/2/,http://сайт/page/3/,http://сайт/page/4/ и так далее на главную только не через htaccess а как то по другом

    • АлаичЪ

      Откройте файл engine.php и найдите строку:

      		// ################ Вывод отдельной категории #################

      ВЫШЕ добавьте:

      	if ( (intval($_GET['cstart']) > 1) && ($dle_module == 'main') ) {
      		header("HTTP/1.0 301 Moved Permanently");
      		header("Location: http://site.ru");
      		die("Redirect");
      	}

      Должно сработать.

      • belov (8 комм.)

        Здравствуйте пробавал ваш код установит на сайт всё работает спасибо большое за помощь

  94. Виктор (8 комм.)

    Сегодня, непонятно с какого перепугу, в индексе появилась страница http://site.ru/index.php/

    Теперь получается две главной вместо одной... о_О Не понимаю откуда она вообще взялась — со слешем на конце?

    Как её удалить? Закрыть в роботсе — Disallow: /index.php/

  95. VIC (7 комм.)

    Приветствую! Все ненужные дубли в гугл вебмастере поуходили, но появились новые такого вида

    /page/13/{$link_regist} — ссылка http://сайт/page/13/%7B$link_regist%7D

    /page/13/

    не пойму, что это такое

    АлаичЪ может вы в курсе?

    • АлаичЪ

      У меня что-то подобное однажды случилось, но то я сам был виноват — экспериментировал на работающем файле.

      Решить проблему можно таким образом.

      В файле .htaccess сразу после RewriteEngine On надо добавить:

      RewriteBase /
      RewriteCond %{REQUEST_URI} (.*){$link_regist}$
      RewriteRule ^(.*){$link_regist}$ $1 [R=301,L]
  96. Hayk (2 комм.)

    после обновления dle с DLE 9.3 до версии 9.6 Новости добавляются сразу две и когда удаляю одну удаляется и второй

  97. graff (1 комм.)

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

    if ($do == "cat" and $category != '' and $subaction == '') {

    НИЖЕ добавляем:

    //решение проблемы с категориями, редирект на верный урл, удаление слеша в конец

    if ( $config['allow_alt_url'] == "yes" AND $category_id AND $view_template != "rss") {

    $re_cat = get_url ( $category_id );

    if ($re_cat != $_GET['category'] OR substr ( $_SERVER['REQUEST_URI'], — 1, 1 ) == '/' ) {

    $re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );

    $re_url = reset ( $re_url );

    header ("HTTP/1.0 301 Moved Permanently");

    header ("Location: {$re_url}{$re_cat}");

    die ("Redirect");

    }

    }

    //решение проблемы с категориями, редирект на верный урл, удаление слеша в конец

    После данной операции перестают работать все страницы с категориями и субкатегориями. DLE 9.5

    Вот ошибка:

    На этой странице обнаружена циклическая переадресация

    Загрузка веб-страницы по адресу http://site.ru/cat/subcat/ вызвала слишком много переадресаций. Попробуйте очистить для этого сервера файлы cookie или разрешить их прием от независимых сайтов. Если это не поможет, возможно, проблема связана не с вашим компьютером, а с конфигурацией сервера.

    Вот несколько советов и рекомендаций:

    Обновите эту страницу позже.

    Подробнее об этой неполадке.

    Ошибка 310 (net::ERR_TOO_MANY_REDIRECTS): Обнаружено слишком много переадресаций.

    • АлаичЪ

      А предупреждение, видимо, вас не смутило: "ВНИМАНИЕ!!! Правки, приведенные ниже не рекомендуется делать для движка DLE версии 9.3 и выше. Удаление слеша по описанной ниже схеме возможно только для версий до 9.2 включительно."

  98. Артем (3 комм.)

    АлаичЪ, может быть поможете понять в чем причина возникшей проблемки.

    Внес правки по первой и второй частям Вашей статьи. Но у меня на сайте стоял хак "Recent Searches", он берет поисковые запросы которые пользователи ввели на сайте и генерирует страницу вида:

    http://mysite.com/search/поисковый+запрос.html

    Так вот после внесенных изменений я обратил внимание что любая страница такого вида (неважно что стоит после /search/) копирует содержимое главной.

    Я вообще решил избавиться от этого хака (давно планировал) и убрал его. Но проблема все равно осталась.

    Помогите пожалуйста разобраться.

    P.S. С проблемой Robots о которой писал в коментах соответствующей статьи разобрался. Там были мои кривые руки :)

    • АлаичЪ

      Чтобы избавиться от страниц вида http://mysite.com/search/поисковый+запрос.html и сделать 301-редирект на главную, необходимо в файле .htaccess после строки RewriteEngine On добавить:

      RewriteBase /
      RewriteRule ^search/(.*)$ / [R=301,L]
  99. Bandidos (4 комм.)

    АлаичЪ, привет.Возникала такая проблема, произошла ошибка в бд и получилось что на новость оказалось больше количество Комментов, следовательно и дохренище страниц с комментами, и гугл их все проидексировал, в поиске получилось около 200 страниц такого типа.

    http://site.ru/page,1,558984,id-news.html

    Вроде всё сделал по мануалу, и проблема должна была решится, но не решает, переправляет на новость только в том случае если указываю первую страницу Комментов, со второй и последующих не перенаправляет.Может Подскажи пожалуйста, какой нибудь другой способ убрать эти дубли.

  100. VIC (7 комм.)

    Всплыли новые дубли ))) одно закрываешь другое появляется

    site/statya.html&post=-29824380_239

    такое лучше в роботсе закрыть или через .htaccess

  101. Антон (6 комм.)

    Проделал все вышеописанное в статье. google дал результ:

    Страницы с повторяющимися заголовками (теги title)

    /program/

    /program

    Что сделал не так ? :) DLE 9.6

    • АлаичЪ

      Беда со слешами решается включением пункта seo-контроля ЧПУ в админке.

      • Антон (6 комм.)

        Так я вот это — Обрабатывать неверные URL ЧПУ: врубил. Видать раньше проиндексировало чем включил ?! Подождемс .

        • АлаичЪ

          Со временем склеятся страницы, главное чтобы сейчас при переходе на /program редиректило на /program/

  102. Виталий (2 комм.)

    Ситуация следуящая:

    есть страницы такого типа:

    http://shopping.mk.ua/catalog/grupa/70/type_sort/1

    http://shopping.mk.ua/catalog/grupa/70/type_sort/2 и т.д.

    Подскажите, плиз, как осуществить переадресацию на эти страницы со страниц без чисел после слэш:

    http://shopping.mk.ua/catalog/grupa/70/type_sort/

    Яндекс и гугл индексируют последние страницы и не находят их.

    А конкретнее, либо редирект, если попадаются страницы с /type_sort/ без ничего после слэша, либо чтоб добавляло автомато после слэша 1 к примеру...

    такая фигня не только с /type_sort/ , но и с /grupa/ /page/ и т.д.

    Спасибо за помощь!

    • АлаичЪ

      Надо после RewriteEngine On добавить:

      RewriteBase /
      RewriteRule ^(.*)/type_sort(/?)+$ $1/type_sort/1 [R=301,L]
      • Виталий (2 комм.)

        Спасибо огромное, прокатило ;)

        Другие "незаконченные" страницы сделал таким же образом...

        Хорошо, что на вас наткнулся, очень хороший ресурс, другие статьи тоже понравились :) Так держать!!!

  103. belov (8 комм.)

    Здравствуйте подскажите как сделать редикт со страниц http://сайт/категория/page/2/,http://сайт/категория/page/3/ и так далее на страницу http://сайт/категория/ если это возможно если это не возможно сделать то можно сделать редикт хотя бы на главную страницу сайта

    • АлаичЪ

      В файле .htaccess после строки RewriteEngine On добавить:

      RewriteBase /
      RewriteRule ^категория/page/(.*)$ категория/ [R=301,L]
  104. Давид (15 комм.)

    АлаичЪ В дле 9,6 не работает редирект с

    page/5

    на

    page/5/

    Подскажи пожалуйста что делать? Метод что ты выше написал не решает эту проблему. спасибо.

  105. Максим (6 комм.)

    помогите сделать редирект со старого адреса категории на новый

    сделал вот так

    Redirect 301 /allfilms/ /films/

    но при переходе на /allfilms/

    выбивается такая ссылка

    http://live-torrent.ru/films/?do=cat&category=allfilms/

    как сделать чтобы было

    http://live-torrent.ru/films/

  106. Евгений (3 комм.)

    Здравствуйте! у меня такая проблема не как не магу избавится от такого http://stelari.ru/# http://stelari.ru/# http://stelari.ru/# http://stelari.ru/# и их где то 50 на внутренних ссылках. подскажите что сделать? Движок 9.3

    • АлаичЪ

      Ничего не делать, решетка # обозначает якорь, а поисковики якори не индексируют, то есть ссылка http://stelari.ru/#blablalba для поисковика ведет как бы на страницу http://stelari.ru/

  107. Денис (10 комм.)

    Привет, АлаичЪ!

    Недавно наткнулся на твой сайт — получил и продолжаю получать множество полезной информации!

    Сейчас сижу мудрю с изменениями по данной инструкции, но столкнулся с такой проблемой:

    У меня почему при переходе по ссылке site.ru/page/1 вылетает белый фон с надписью "Redirect"! Если же в конце есть слеш то все нормально — перенаправляется на главную страницу. Может я чего-то упустил?

    DLE 9.5

    Nginx

    • Денис (10 комм.)
      RewriteRule ^(.*)/page/1/$ $1/ [R=301,L]
      RewriteRule ^(.*)page/1/$ $1/ [R=301,L]

      Перевел для nginx:

      rewrite ^/(.*)/page/1/$ /$1 redirect;
      rewrite ^/(.*)page/1/$ /$1 redirect;

      Проблему решил с помощью замены кода на такой:

      rewrite ^/(.*)/page/1/$ /$1 redirect;
      rewrite ^/(.*)/page/1$ /$1 redirect;
      rewrite ^/(.*)page/1/$ /$1 redirect;
      rewrite ^/(.*)page/1$ /$1 redirect;
  108. Денис (10 комм.)

    И в догонку глупый вопрос... По адресу site.ru/index.php/ должно выдавать 404 ошибку? У меня что-то совсем из головы вылетело.

    • АлаичЪ

      Не, стандартно DLE выдаст просто главную страницу при вводе этого урла.

      • Денис (10 комм.)

        У меня при запросе site.ru/index.php/ вылетает 404 Not Found...

        Каким правилом можно решить эту ошибку?

        • АлаичЪ

          Так и в чем проблема? Значит все хорошо, пусть выдает. Или сделайте редирект в htaccess:

          Redirect 301 /index.php/ http://site.ru

          • Денис (10 комм.)

            Решил 2 проблемы сразу данным кодом, быть может кому-то пригодится:

            if ($request_uri = /index.php) {
            rewrite ^ http://www.site.ru permanent;
            }
            if ($request_uri = /index.php/) {
            rewrite ^ http://www.site.ru permanent;
            }

            Теперь редиректит как index.php так и с index.php/ на www.site.ru

          • Денис (10 комм.)

            В общем подумал, и получилось, на мой взгляд, даже проще и лучше с таким вариантом:

            rewrite ^/(.*)/index.php$ /$1 redirect;
            rewrite ^/(.*)/index.php/$ /$1 redirect;
  109. Денис (10 комм.)

    Проблема с данным кодом:

    ### Редиректы с site.ru/category/index.php на site.ru/category/ и др.

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteCond %{REQUEST_URI} (.*) index\.php$

    RewriteRule ^(.*) index\.php$ $1 [R=301,L]

    ### Редиректы с index.php на сайт

    RewriteBase /

    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/

    RewriteRule ^index\.php$ / [R=301,L]

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule . /index.php [L]

    Не могу его корректно перевести в nginx, начинает ругаться...

    На выходе получился код:

    location / {

    if (!-e $request_filename){

    rewrite ^/(.*) index\.php$ /$1 redirect;

    }

    if (!-e $request_filename){

    rewrite ^(.*)$ /index.php break;

    }

    }

    location /index {

    rewrite ^/index\.php$ / redirect;

    }

  110. Тарас (7 комм.)

    Склеиваем адреса страниц /page/1/ с основными адресами для главной страницы и категорий

    При выполнения это пункты выскакивает ошибка —

    Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

    С чем это связано может быть? Движок 9.6!

  111. Роман (15 комм.)

    "Устраняем неразбериху с категориями их вложенностью и слешем / на конце" — Проделал данную операцию, вроде все получилось, но в google вебмастер все равно показывает мне дублирующие ссылки со слэшем и без. Что я делаю не так?

  112. joynik (12 комм.)

    DLE 9.7, после вставки кода:

    ### Редиректы с index.php на сайт

    RewriteBase /

    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/

    RewriteRule ^index\.php$ / [R=301,L]

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule . /index.php [L]

    При переходе по несуществующей картинке происходит отображение главной страницы сайта а не 404 — http://uakino.com/uploads/posts/2012-07/uakino.com_13432512381.jpg

    Такая же проблема была и на DLE 9.6

  113. joynik (12 комм.)

    после добавления вот этих строк

    ### START Редирект с первой страницы на основную

    RewriteRule ^(.*)/page/1/$ $1/ [R=301,L]

    RewriteRule ^(.*) page/1/$ $1/ [R=301,L]

    ### END Редирект с первой страницы на основную

    все работает, но возможно ли добавить исключение в редирект для страницы http://uakino.com/page/1/ чтобы он не переходил на http://uakino.com/

  114. joynik (12 комм.)

    АлаичЪ а что по поводу ошибки при переходе по несуществующей картинке?

  115. WildCat (2 комм.)

    Добрый вечер, АлаичЪ!

    Совершенно случайно наткнулся на Ваш блог, зачитался основательно, сохранил кучу информации себе в diigo.

    У меня по сайту без малого 4000 проблем с тайтлами и дубликатами урлов. Кошмар, согласен, будем резать.

    Я хотел вот что спросить — как правильно прописать основным зеркалом домен третьего уровня?

    Так? С дополнительным слешем?

    RewriteCond %{HTTP_HOST} ^www\.site\.in\.ua$ [NC]

    • АлаичЪ

      Ну да, все верно.

      • WildCat (2 комм.)

        хм... если прописываю вышеуказанный вариант, то при открытии адреса с www я так и остаюсь на нем, урл в браузере не меняется, а если сделать вот так

        RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]

        RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

        то открывая www.site.in.ua меня перекидывает на site.in.ua.

        Какой вариант правильнее?

  116. Василина (2 комм.)

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

    Проделала все что у вас написано на движке 8,3, потом обновилась (через пару мес) на версию 8,5

    Вот в чем вопрос

    при вводе адреса http://site.ru/index.php/ нет переадресации на http://site.ru

    так же не работает http://site.ru/123-news-name.html/ на http://site.ru/123-news-name.html (выдается ошибка 404)

    при вводе http://site.ru/category/index.php переадресовывается на страницу http://site.ru/category/index.php/ (а такой нет и выводится страница с ошибкой 404)

    в чем может быть дело?

    • АлаичЪ

      После обновления правки, описанные выше, вносили?

      PS Настоятельно рекомендую обновиться до 9.7 и не парить себе мозги.

      • Василина (2 комм.)

        прошу прощения, обновлялась до 9.4 а не до 8.5,

        т.е. рекомендуете чисто обновиться как описано в статье http://alaev.info/blog/post/3970 и поставить допом все 4 части по seo-оптимизации DLE?

        • АлаичЪ

          Да, как-то так. Только внимательно читайте актуальность правок, везде есть пометки, и если нет вашей версии, ни в коем случае не вносите эти правки.

  117. belov (8 комм.)

    Здравствуйте подскажите как сделать редикт со страниц категории типа http://сайт/категория/, http://сайт/категория/page/2/ и так далее на главную чтобы при создании очередной страницы типа http://сайт/категория/page/3/ или http://сайт/категория/ происходил редикт автоматически на главную

  118. pashavanholt (16 комм.)

    Здравствуйте много уважаемый АлаичЪ

    когда актуализируете часть 2 для dle 9.7 спасибо

  119. Михаил (20 комм.)

    Здравствуйте, помогите пожалуйста, дело в том что у меня на сайте когда нажимаешь с главной страницы на другие категории, то все переходит нормально, а когда нажимаешь с главной страницы например на 2 страницу, то есть например site.ru/page/2/, а потом пытаешься перейти например в категорию животных, адрес меняется то есть site.ru/page/2/zhivotnye, но переход не осуществляется. Помогите пожалуйста решить данную проблему.

    Обрабатывать неверные URL ЧПУ включено, но не помогает.

    • АлаичЪ

      Это ошибка в шаблоне. Используйте абсолютные ссылки, а не относительные. Прописывайте в шаблоне ссылки сразу как http://site.ru/...

      • Михаил (20 комм.)

        Огромнейшее вам спасибо, как всегда выручаете, сделал как вы сказали и все заработало.

  120. Михаил (20 комм.)

    Здравствуйте уважаемый АлаичЪ, возник тут у меня вопрос. Существует мнение что плотность ключевых слов на странице должна быть 5-7 %, так вот вопрос в следующем, это плотность имеется ввиду только в тексте страницы, или берутся все вхождения страницы включая title, keywords, description ?

    • АлаичЪ

      Много мнения всяких существует. А на счет плотности — все это чушь, пишите текст не привязываясь к каким-то цифрам, которые ничего не значат.

      Ну а на счет плотности, обычно говорят о проценте ключевых слов в основном контенте, без учета всего остального.

  121. Surcho (16 комм.)

    АлаичЪ! Появились вот такие страницы: http://site.ru/http:/site.ru/category/novosti/

    Это дубль главной страницы. Что можно сделать? Отчего может быть такая страница? DLE 9.7

    • АлаичЪ

      У меня такие же косяки есть на одном из сайтов, сам не знаю откуда это дело появилось. Но решаю это таким образом. После RewriteEngine On добавляем:

      RewriteBase /
      RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /http(.*) HTTP/
      RewriteRule ^http(.*)$ / [R=301,L]
  122. Михаил (20 комм.)

    Здравствуйте АлаичЪ, помогите пожалуйста, дело в том что я хочу сделать небольшое описание с ключевыми словами у себя на главной странице. Когда я в main.tpl прописываю небольшое описание то выглядит это так, вот картинка что бы было наглядно видно http://videosmeh.ru/image1.jpg. Но мне нужно написать описание побольше, но стоит мне написать побольше текста то это выглядит так http://videosmeh.ru/image2.jpg . Как вы видите текст вылазит за серую рамку шаблона, так вот, вопрос такой, как сделать что бы эта серая рамка растягивалась, то есть что бы было так, чем больше текста тем больше серая рамка.

    • АлаичЪ

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

      • Михаил (20 комм.)

        Извините, но вы не правы я уже все сделал, и это изображение я изменил размеры в фотошопе залил их на сервер и в css поменял размеры.

  123. Сергей (3 комм.)

    Здравствуйте! Есть сайт site.ru с форумом site.ru/forum. Форум LogicBoard 2.2 работает хорошо, но после того, как я в файл .htaccess добавляю вот это:

    RewriteBase /

    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/

    RewriteRule ^index\.php$ / [R=301,L]

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule . /index.php [L]

    То нажимая на любую ссылку в форуме сразу же идет перенаправление на site.ru. Что можно сделать в сложившейся ситуации?

    Заранее благодарю Вас за помощь! С уважением Сергей.

    • АлаичЪ

      Можно вот такой вот код попробовать:

      RewriteBase /
      RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
      RewriteRule ^index.php$ / [R=301,L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_URI} !^/forum/?$
      RewriteRule . /index.php [L]
  124. vM (6 комм.)

    В пункте мануала: "Убираем index.php из адреса главной страницы и страниц категорий" у меня такая схема не работает!

    При переходе на любую из категорий, в адресной строке появляется правильный путь, но при перезагрузке страницы, я остаюсь на главной, хотя путь остается тот же — site.ru/category/

    • АлаичЪ

      Потому что надо делать по инструкции, а не так как захочется. Если сказано в самый конец, значит именно туда надо добавлять.

      PS Не надо сюда огромные листинги своего кода отправлять, я такие комментарии буду удалять сразу.

  125. Михаил (20 комм.)

    Здравствуйте, помогите пожалуйста вот в чем, у меня на сайте стоит реклама от google. Я тут недавно зашел в панель управления рекламой и обнаружил вот такие ошибки "Роботу AdSense не удалось просканировать вашу страницу", то есть не все страницы, а некоторые. Например есть категория люди в ней есть 5 страниц, причем первые 2 рекламный робот просканировал, а остальные 3 не смог, вот что пишет

    http://videosmeh.ru/lyudi/page/4/ — сканирование запрещено

    http://videosmeh.ru/lyudi/page/5/ — сканирование запрещено

    http://videosmeh.ru/lyudi/page/3/ — сканирование запрещено.

    Но я не понимаю почему тоже самое только page/2/ и page3/ просканировал. Робот намекнул что ошибка может быть в robots.txt, но там я смотрел вроде все нормально. Уважаемый вебмастер АлаичЪ помогите пожалуйста.

    • АлаичЪ

      В robots.txt есть директивы Disallow: /page/ и Disallow: */page/* — все ведь логично, сами запретили, чему тут удивляться?

      • Михаил (20 комм.)

        Так а почему же тогда другие страницы пагинации с этой же категории без ошибок, google adsense нормально ставит рекламу ?

        • АлаичЪ

          Видимо не дошел еще робот до туда, так что это вопрос времени.

          • Михаил (20 комм.)

            Уважаемый АлаичЪ, как оказалось google adsense поставил рекламу только на обычные категории, а на всех страницах пагинации рекламы нет, robots.txt уже давно изменил, но до сих пор все по старому. Помогите пожалуйста решить данную проблему, я уже устал.

            • АлаичЪ

              Не знаю в чем дело — может не переиндексировалось. Подожди недельку-другую, если ничего не изменится, стоит написать в службу поддержки.

            • Дан (15 комм.)

              Вообще-то Google об этом всегда сообщает и предлагает для своего робота который сканирует страницы для google adsense открыть все страницы.

              В роботс.тхт прописаны следующие дерективы?

              User-agent: Mediapartners-Google

              Allow: /

              Эта строчка только для робота Google Adsense, для других можно закрывать все, что не нужно.

  126. Саня (9 комм.)

    После добавления следующего условия:

    ### Редиректы с index.php на сайт
    RewriteBase /
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
    RewriteRule ^index.php$ / [R=301,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    Любой клик по сайту ведет на главную, не могу зайти не в новость никуда вообще, все ссылки ведут на главную — что я не так делаю? как это исправить?

    • АлаичЪ

      В какое место в htaccess добавляешь данные строки?

      • Саня (9 комм.)

        блин плохо быть по пояс деревянным))) не думал что есть разница — в конец файла перенес, все заработало. Спасибо за подсказку. А за тему отдельное спасибо!

        • АлаичЪ

          Плохо быть не деревянным, плохо не следовать инструкциям, ведь я их не с потолка беру :)

  127. Михаил (20 комм.)

    А может быть дело в ошибки шаблона или самой пагинации ? Я выполнял ваши некоторые пункты из части второй, первой может там какой нибудь код запрещает пагинацию ?

  128. san85ua (1 комм.)

    Ув. АлаичЪ, подскажите: оптимизирую новый сайт на денвере. версия 9.7. Делаю правки: "Дублирование страниц категорий по адресам без слеша и со слешем на конце"...

    Добавляю в engine.php код:

    //решение проблемы с категориями, редирект на верный урл, добавление слеша в конец

    if ( $config['allow_alt_url'] == "yes" AND $category_id AND $view_template != "rss") {

    $re_cat = get_url ( $category_id );

    if ($re_cat != $_GET['category'] OR substr ( $_SERVER['REQUEST_URI'], — 1, 1 ) != '/' ) {

    $re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );

    $re_url = reset ( $re_url );

    header ("HTTP/1.0 301 Moved Permanently");

    header ("Location: {$re_url}{$re_cat}/");

    die ("Redirect");

    }

    }

    //решение проблемы с категориями, редирект на верный урл, добавление слеша в конец

    Не действует... т.е. сохраняя engine.php, я пробую ввести урл типа "site.ru/category", после чего редирект на "site.ru/category/" не происходит, а остается как "site.ru/category" :(

    в файле .htaccess пробую

    # Редирект для категорий (чтобы в конце URL был /)

    RewriteBase /

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteCond %{REQUEST_URI} !-f

    RewriteCond %{REQUEST_URI} !/$

    RewriteCond %{REQUEST_URI} !.html$

    RewriteCond %{REQUEST_URI} !.xml$

    RewriteRule (.+) $1/ [R=301,L]

    Картина та же... Это что? в 9.7. не работает ни один из способа истребления урл"ов без слеша?

    • АлаичЪ

      Ну в общем-то в посте и не написано, что данные методы совместимы с 9.7, надо быть внимательнее немного :)

  129. Пушкин (2 комм.)

    Добрый день, а скажите пожалуйста, как закрыть вашем методом вот такие ссылки:( категория/page/1/ и т.д.) у меня на сайте 27 категорий и в индекси очень много site.ru/категория/page/1/!!! робот.тхт не помогает.

    • АлаичЪ

      Эти страницы надо убивать, а не закрывать. Читаем вторую часть руководства.

  130. Alex (45 комм.)

    Обычно скептически настроен к руководствам по ДЛЕ, опубликованным на вордпрессном блоге. Но тут же просто фантастика! Такой труд, все так по полочкам — почему мне это раньше не попалось? :) Спасибо, Александр.

    А теперь вопрос (если еще есть силы на меня — 444 коммента не шутка):

    Вследствие специфичности сайта (таблицы с ценами, фиг обрежешь), в кратких тот же контент, что и в полных.

    В итоге получается, что у меня 1 контент на 5 страницах: на site.ru, site.ru/page/2 и т .д., а также на site.ru/category и site.ru/category/subcategory и на собственно полной новости.

    Закрывать от индексации страницы всех категорий не хотелось бы — они неплохо ранжируются и привлекают трафик.

    Что можно сделать? Ломаю голову уже пару месяцев. В поле URL этот сайт.

    • АлаичЪ

      Ну, в таком случае я наверное бы закрыл от индексации все страницы пагинации. Я не думаю, что именно страницы пагинации могу приносить какой-то трафик, его скорее всего приносят главные страницы категорий, а они останутся открыты.

      Disallow: /page/

      Disallow: /*/page/

      • Алекс (45 комм.)

        Спасибо, так и сделал. Насчет остального: решил избавиться от site.ru/category/subcategory/, удалив subcategory, а запрос, по которому она шла в выдаче, передать полной новости site.ru/category/subcategory/news.html

        Удалил subcategory, теперь редиректится на главную (после описанных Вами правок по несуществующим категориям), но ведь наверно лучше сделать редирект с subcategory на /subcategory/news.html? Подскажите, как прописать редирект (и нужен ли он) с удаленной подкатегории на новость в ней с учетом того, что у меня сейчас настроены редиректы на главную.

        • АлаичЪ

          Редирект можно сделать так:

          Redirect 301 /category/subcategory/ http://site.ru/category/subcategory/news.html

          А надо это или нет — сами решайте.

          • Alex (45 комм.)

            Сделал (до переиндексации пусть висит), спасибо, как вас отблагодарить? Может кнопочку какую сделайте.

            Серия по ДЛЕ просто открыла мне глаза, все сделал, радуюсь красоте внутренней оптимизации :)

            • АлаичЪ

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

  131. Евгений (2 комм.)

    Подскажите, пожалуйста, актуально ли для версии 9.7?

  132. Александр (1 комм.)

    Подскажите как избавится от таких ссылок

    site.ru/softsoft/1...

    site.ru/softsoft/2...

    site.ru/не существующая котегория/любое число, затем одна или несколько точек. Движёк 9.5

    Вот у вас на 404 страницу перекидывает http://alaev.info/blogblog/12... а у меня на главную, помогите решить проблему.

  133. Михаил (20 комм.)

    Вопрос 1) Здравствуйте АлаичЪ, подскажите нужно ли закрывать страницы page в robots.txt ?

    Например так

    Disallow: /page/

    Disallow: */page/*

    Вопрос 2) Если закрываешь пропадает реклама google adsense, как быть ?

    Вопрос 3) Если не закрываешь появляется реклама на всех страницах, но при этом в поисковиках по запросам ухожу вниз, как быть ?

    • Дан (15 комм.)

      Откройте страницы для робота Google Adsense.

      В роботс.тхт пропишите следующие строчки:

      User-agent: Mediapartners-Google

      Allow: /

      Эта строчка только для робота Google Adsense, для других можно закрывать все, что не нужно.

      • Михаил (20 комм.)

        А сам гугл пишет

        User-agent: Mediapartners-Google

        Disallow:

        А у вас

        User-agent: Mediapartners-Google

        Allow: /

        Цитирую фразы самого гугла:

        Как разрешить роботу индексировать мой сайт?

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

        User-agent: Mediapartners-Google

        Disallow:

        Это изменение позволит нашему поисковому роботу индексировать содержание вашего сайта и обеспечивать показ релевантных объявлений Google.

        • Дан (15 комм.)

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

          • АлаичЪ

            Сами решайте закрывать или нет страницы пагинации.

            Правильные советы Дан дает, да и вы сами нашли уже в справке что и как делать.

  134. Alexander (1 комм.)

    Помогите сделать редирект в nginx (версия 1.2.2)

    с http://site.ru/index.php?do=register

    на http://site2.ru/index.php?do=register

  135. Vlad (3 комм.)

    Помогите пожалуйста с проблемой. При изменении фала .htaccess ложиться. Но все делал точно по инструкции. Любое изменение этого файла его ложит. Кодировка правильная UTF-8. Версия 9.7 В чем может быть проблема???

    Ошибка

    Internal Server Error

    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Заранее спасибо!

  136. Даниил (2 комм.)

    Добрый день! Появляется ошибка при выполнении пункта:

    "Склеиваем адреса страниц /page/1/ с основными адресами для главной страницы и категорий"

    На разных сайтах (dle 8.5, 9.7) на разных хостингах одна и та же проблема.

    При переходе domen.net/cat/page/2/ на page/1/ страница переходит по адресу с ошибкой 404

    domen.net/home/site/domains/domen.net/public_html/cat/

    • Даниил (2 комм.)

      Почитал комментарии, заработал данный вариант:

      RewriteRule ^page/1/?$ / [L,R=301]

      RewriteRule ^(.+)/page/1/?$ /$1/ [L,R=301]

  137. Ирина (3 комм.)

    Здравствуйте ув. АлаичЪ, помогите пожалуйста вот с такой проблемой http://сайт.ру/&sa=U&ei=fhwsT7H9H4bxsgaKvpXkDA&ved=0CC4QFjAG&usg=AFQjCNEQvoIVxqPUFCNzM6vqA04qys-nEA/

    Не могу понять, что с таким дублем делать, как его закрыть (((. Заранее спасибо. С ув.

  138. Вдадимир (17 комм.)

    Делал все правки доступные для своей версии движка (9.6) и сегодня обнаружил дубли главной страницы по адресам:

    site.ru/home.htm

    site.ru/home.php

    site.ru/index.asp

    site.ru/index.htm

    Как их грамотнее заредиректить?

    • АлаичЪ

      Добавить в .htaccess строчки:

      Redirect 301 /home.htm http://site.ru/

      Redirect 301 /home.php http://site.ru/

      Redirect 301 /index.asp http://site.ru/

      Redirect 301 /index.htm http://site.ru/

  139. Виктор (3 комм.)

    "Устраняем неразбериху с категориями их вложенностью и слешем / на конце

    Для какой версии актуально: Версии DLE 8.2-9.2. Для DLE 9.3 и выше необходимо в настройках движка активировать опцию «Обрабатывать неверные URL ЧПУ»."

    Подскажите пожалуйста)Нужно просто активировать опцию или активировать и произвести изменения?

  140. влад (5 комм.)

    Еще желательно дописать:

    RewriteRule ^(.*)/page/1$ $1/ [R=301,L]
    RewriteRule ^(.*)page/1$ $1/ [R=301,L]

    Иначе при переходе /page/1 без слеша редирект не происходит на главную.

    Можно и так сделать:

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^.]+)(?<!/)$ /$1/ [R=301,L]

    Этот вариант более правильный, на странице пагинации /page/5 без слеша кидает на /page/5/ со слешем.

    Тем самым решаем сразу две проблемы — со слешем и с редиректом.

    • Алекс (45 комм.)

      Проверил, действительно редиректа нет, если без слеша. Ждем авторитетное подтверждение правок :)

      • АлаичЪ

        Да, можно это применять, ничего страшного не случится.

        Но вообще-то как раз проблему со страницами без слеша должна решать правка php. Описанный выше вариант — альтернатива, но тоже рабочая.

        • Алекс (45 комм.)

          Пробовал делать правки влада, не помогли — все равно страница http://site.ru/page/1 показывает белый экран и слово Redirect. В какую часть файла .htaccess их надо вставлять?

          Так а как решать проблему со страницами без слеша правкой php в DLE 9.5?

          В статье у вас пометка, что актуально только для DLE 8.2-9.2.

          • АлаичЪ

            Если выдается Redirect, значит убери php-правки для этого случая.

            Проблема со слешем должна решаться самим DLE в свежих версиях, поэтому и актуально только для старых.

            • Алекс (45 комм.)

              Убрал php-правки, и теперь, естественно, http://site.ru/page/1 и http://site.ru/page/1/ существуют и никуда не редиректят. Благо, закрыты от индексации.

              Проблема со слешем в ДЛЕ решается в категориях, но не решается на страницах пагинации. Во всяком случае. так у меня получается.

              • АлаичЪ

                На раз убрал php-правки, внедри те, что предложил влад чуть выше, все будет работать :)

  141. Максим (4 комм.)

    Приветствую, АлаичЪ!

    После того как поправил всё до пункта: "Убираем слеш в конце url — редирект со страницы со слешем в конце на страницу без слеша" у меня перестали открываться статичные страницы.

    На статике у меня карта сайта HTML, при переходе на неё открывается главная страница, с остальными тоже самое. DLE 9.7.

    Подскажи, где копать?

    • АлаичЪ

      В этом посте для DLE 9.7 подходят только первые три пункта, о чем и сказано в посте. Рекомендую сделать откат всех изменений и впредь более внимательно смотреть на соответствие версий.

  142. Сергей (5 комм.)

    НАХОДИМ:

    ### END Определяем главное зеркало

    в htaccess нет такой строки. DLE 9.7

    • Максим (4 комм.)

      Это появляется когда сделаешь пункт: "Склейка зеркал — выбираем главное зеркало www.site.ru или site.ru"

      ### START Определяем главное зеркало как site.ru (site.ru заменить на свой домен, например alaev.info)

      RewriteCond %{HTTP_HOST} ^www\.site\.ru$ [NC]

      RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

      ### END Определяем главное зеркало

      Если конечно копируешь с пояснениями.

  143. remont63 (12 комм.)

    Обнаружил в панели веб мастера гугла, следующие ошибка повторяющегося метоописания.

    Пишу только про те старницы, который открываются по указанным адресам

    1) http://www.site.ru/category/pod/ — основной раздел

    http://www.site.ru/www/scategory/pod/ — дубль.

    2) http://www.site.ru/category1/

    http://www.site.ru/index.php?do=cat&category=category/

    3) можно ли устранить дубли подобного типа:

    /?cstart=46

    /page/46/

    • АлаичЪ

      В ближайшее время опубликую пост про редиректы в DLE. Наберитесь терпения!

  144. Min-Z-Drav (7 комм.)

    как решить данный дубыль http://site.ru/page/19/advertising.html http://site.ru/page/19/

  145. Kim (6 комм.)

    RewriteCond %{HTTP_HOST} ^www\.site\.ru$ [NC]

    RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

    Почему то после добавления данного кода (с заменой адреса сайта на свой) в .htaccess, перестает работать расширенный поиск по сайту...

    Но стОит выбрать основным зеркалом сайт с www, прописав соответствующий код — поиск функционирует в полной мере...

    Сейчас ещё обнаружил проблему при регистрации, после получения ссылки на почту (для активации аккаунта) переходим по ней и жмём "Продолжить регистрацию на сайте" — получаем ID not valid!

    DLE 9.7 (лицензия) никаких доп. модулей и хаков на сайте нет, код валиден (все страницы)

    • remont63 (12 комм.)

      Я бы для начала посмотрел все ли файлы шаблона и движка закачаны. возможно что-то не догрузилось.

      Либо смотреть в сторону модуля register, тот что в папке engine/modules/

      Или попробуйте отключить в настройках безопасности скрипта: Включить автоматическое блокирование спам программ — поставьте"нет"

      Хотя обычно такие ошибки при добавлении новостей появляются, либо с отправкой персональных сообщений, а тут с регистрацией.

      • АлаичЪ

        Ну так может дело не в редиректе, а в настройках самого DLE, например, прописано в настройках с www, а редирект его убирает и отсюда ошибка.

        Так-то вообще редирект никак не влияет на работу сайта, за все мои 7 лет никогда подобных проблем не возникало.

        • Kim (6 комм.)

          АлаичЪ, проблема уже устранена, ошибка была именно в настройках самого DLE — сайт был указан с www... ужасно глупо получилось... стыдно...

  146. NeedLe (22 комм.)

    Нашел вот еще какую страницу с повторяющимся тайтлом главной страницы, она высветилась в вебмастере гугла

    http://site.ru/index.php?act=category&do=newscore

    Как быть с редиректом здесь?

  147. Ванчик (41 комм.)

    Открыл категории к индексации, вылез дубль главной /?cat=1. Как можно сделать редирект в htaccess?

    • АлаичЪ

      После RewriteEngine On надо добавить:

      RewriteBase /
      RewriteCond %{QUERY_STRING} ^cat=
      RewriteRule (.*) $1? [R=301,L]
      • Ванчик (41 комм.)

        Просто огромнейшее спасибо!!! Кстати, со вчера жду ответа в ICQ.

      • Ванчик (41 комм.)

        АлаичЪ, вылез ещё один главной /?qwerty123456 — рассчитываю на помощь. Вообще странно как дле их любит плодить!

  148. Иван (1 комм.)

    Доброго времени. Как можно решить проблему попадания вот таких страниц в "HTTP-статус: Ресурс не найден (404)" Яндекса?:

    /anime/detskie/komedii/komedii/komedii/koncerti/detskie/

    Спасибо за ответ.

    • АлаичЪ

      В общем-то пункт "Устраняем неразбериху с категориями их вложенностью и слешем / на конце" как раз об этом!

  149. Давид (15 комм.)

    Всем привет. АлаичЪ проблемы в Dle 9.7

    site.ru/page/1 — на странице пишет просто "Redirect"

    Не делает редирект с

    site.ru/page/2 на site.ru/page/2/

    site.ru/category/page/2 — делает редирект на site.ru/category/

    Как можно это все исправить?

    Спасибо большое.

  150. Дима (14 комм.)

    Здравствуйте Многоуважаемые Посетители и Alaev)))

    У меня проблема (все пункты вернул...дважды до всех изменений...как если бы не заходил на этот блог) но всё равно редирект идёт на главную с адреса http://site.ru/engine/download.php?id=350

    Вот у него нету редиректа http://baldeem-vmeste.ru/novinki/1058-moy-paren-psih.html если в браузер вставить его ссылку http://baldeem-vmeste.ru/engine/download.php?id=1138 (это торрент этой же новости, просто из исходника взял)

    У меня торрент движок но не в этом дело, мне ради партнёрки mail.ru надо позарез чтобы скачивался через браузер торрент (ссылки рабочие абсолютно, я просто привел пример одной из них)

    Вобщем чтобы НЕ срабатывал редирект на главную надо, надо убрать редирект.

    Будъте так ДОбры подскажите пожалуйте как исправить.

    Заранее Спасибо Огромное Вам))))

    • NeedLe (22 комм.)

      А если в настройках файлов вот тут "Блокировать скачивание файлов с других серверов" — поставить нет?

      • Дима (14 комм.)

        http://tnt-torrent.org/games/566-skachat-torrent-gta-4-grand-theft-auto-iv.html вот если нажать на зелёную кнопку СКАЧАТЬ виден адрес (поднести курсор...или через исходник как угодно найти ссылку) http://tnt-torrent.org/engine/download.php?id=350 вот ссылка! скачивание успешно через кнопку разумеется... НО если вставить в браузер эту ссылку http://tnt-torrent.org/engine/download.php?id=350 и нажать Enter (просто перейти Господи) то редирект на главную идёт!

        http://profitraf.ru/ вот партнерка ,её смысл, что скачивается файл mail.ru в котором тулбар предлагается и браузер mail.ru установить, просто галочки стоят...ну как это бывает у программм...файл .exe ...а далее этот файл скачивает настоящий торрент и даёт пользователю...она открывает мой сайт и я вижу долю секунды в адресной строке мелькает ссылка и сразу редирект на главную ,поэтому торрент не успевает и не может быть скачан.

        Понимаете? Вот как убрать редирект...я КЛЯНУСЬ дважды возвращал все пункты по умолчаню...все 4 раздела оптмизации (URL борьба с дублями...htaccess и так далее) я веду дневник и все изменения у меня записаны кажись. Но всё равно редирект идет.

        Я не могу понять к какому пункту оптимизации...какой файл отвечает за это...куда копать...понимаете?

      • Дима (14 комм.)

        ВЫ ГЕНИЙ!!!!!!!! СПАСИБО Needle!!!!!!! Ой как Вы мне помогли!!! Я до 7 утра мучался!!!

        "Блокировать скачивание файлов с других серверов" поставил НЕТ и теперь все посетители могут качать реальный торрент)))) СУПЕР))))) Ой Господи...а с этими редиректами...оптимизацией... php файлами мучался.

        Хорошо, что сюда решил написать. Всем Удачи))) Needle просто до Гроба благодарен буду Вам!!!

        • NeedLe (22 комм.)

          Не поверите, сам как то мучался тоже с партнеркой от майла, даже писал в тех-поддержку, правда потом было самому стыдно, что не дочитал инструкцию до конца =)

  151. Simur (20 комм.)

    А если у меня в хтачез прописано так:

    RewriteEngine On

    RewriteRule ^forum/(.*)$ forum/$1 [L]

    RewriteCond %{HTTP_HOST} ^site.ru

    RewriteRule (.*) http://www.site.ru/$1 [R=301,L]

    Зеркало главное с www. Так не правильно?

    В первой строчке у меня нет — $ [NC]

    Во второй нет — $ перед http

  152. Алексей (4 комм.)

    Здравствуйте Александр, спасибо вам за все 4 статьи по оптимизации dle. Я выполнил все необходимые правки со всех 4-ех статей, версия dle 9.7. Смотрите что мне не совсем понравилось — Например сайт http://site.ru пишешь вот такую например шляпу http://site.ru/sdasadsadasd.png и сайт открывает этот адрес, а на нём главная страница... Никакого 301-ого на главную (вместо 404) не производится. Не знаете в чём дело? это ведь получается можно миллионы дублей главной сделать... Или я чего то не понимаю? Объясните пожалуйста. Так же происходит если в url добавить существующую категорию сайта http://site.ru/category/sdasadsadasd.png так же открывается этот адрес с содержанием главной страницы.

  153. Алексей (4 комм.)

    На другом сайте на Dle 9.5 аналогичная ситуация, так же делал всё что актуально для моей версии по 4 статьям.

  154. Константин (2 комм.)

    Подскажите пожалуйста. У меня Гугл и Яндекс определяет ссылки с календаря новостей как битые 404 в смысле...

    Подскажите что делать?

    И еще находит ссылки типа сайт.ру/категория/страница/2/сайт.ру

    Как это удалить? И избежать повтора.

    • Константин (2 комм.)

      После проделанных выше указанных замен. Ошибки из 148 уменьшилось до 4.

      Но проблема в ссылках с календаря 404 продолжает мозолить глаза. Помогите пожалуйста.

  155. Роман (15 комм.)

    Здравствуйте! Очень интересная и полезная статья, воспользовался всеми советами приведенными в ней. Но столкнулся с такой проблемой, решение которой здесь не нашел, поэтому решил обратиться за помощью. Проблема вот в чем, на сайте переименовал раздел, как название так и урл на него, и теперь при переходе по старым ссылкам вылазит ошибка. Возможно ли сделать редирект с этого удаленного раздела на новый рабочий? И еще одно, менял как-то название урлов в новостях, теперь в вебмастере гугл имеются дубликаты с одинаковыми новостями, но с разными урлами, как это можно исправить?

    • Алексей (4 комм.)

      Попробуйте в .htaccess в самом низу добавить строчку

      Redirect 301 /stariy-url http://site.ru/noviy-url

      • Роман (15 комм.)

        Вот так вот и вписать

        Redirect 301 /мой_сайт/категория/ http://мой_сайт/новая категория/ — то есть никаких лишних символов вписывать туда не нужно? Уточняю, т.к. я в этом не очень то разбираюсь))

  156. Юрий (23 комм.)

    Здравствуйте, при установке вашего варианта редиректа с index.php на категории и главную без index.php, мы вганяем свой сайт в бесконечное число дублей — несуществующих страниц, например, site.ru/fgfgfgf.php.php, где вместо "fgfgfgf" можно написать что угодно! И никакого редиректа, только с index.php будет редирект!

    Я предлагаю следующий код для вставки в .htaccess сразу после RewriteEngine On (вместо site.net нужно прописать домен своего сайта):

    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/

    RewriteRule ^index\.html$ http://site.net [R=301,L]

    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/

    RewriteRule ^index\.php$ http://site.net [R=301,L]

    P.S. Тестировалось на DLE 9.7

  157. Simur (20 комм.)

    > Склеиваем адреса страниц /page/1/ с основными адресами для главной страницы и категорий

    DLE 9.7. Сделал выше описанное, но редиректа нет. Все равно можно зайти на страничку сайт/page/1/, сайт/page/5/ и т.д.

    Плюс в выдаче гугла есть эти странички и они просто дублируют главную... Прописать в роботс это: Disallow: */page/ ?

  158. igorockk (2 комм.)

    Добрый день! А не подскажите ли, как избавиться от дублей, если есть необходимость добавить одну и ту же новость сразу в несколько разных категорий?

  159. Simur (20 комм.)

    Немного подробнее о моей проблеме:

    1. У меня на главной, новости выводятся не так как по стандарту в DLE (вывод 10 новостей, а переходя по страничкам 1,2,3 попадаем на странички сайт/page/1/, сайт/page/2/, сайт/page/3/ с новостями по убыванию даты). А у меня выводятся блоки: последние новости, комментируемые новости, популярные и т.д.

    Таким образом попадая на странички сайт/page/1/, сайт/page/2/, сайт/page/3/, дублируется главная страница.

    Как я говорил выше, сделав "Склеиваем адреса страниц /page/1/ с основными адресами для главной страницы и категорий", у меня нет редиректа на главную. А вот если я укажу не иснующую страничку (например сайт/page/10000/), то перекидывает на последнюю существующую.

    2. Плюс в выдаче гугла есть эти странички и они просто дублируют главную (сайт/page/1/, сайт/page/2/... сайт/page/15/). Я так понял это можно исправить этим: Disallow: /*/page/ , Disallow: /*/*/page/.

    Только где это лучше прописать, в роботс или метатеге?

    Спасибо за очень полезный блог!!!

    • АлаичЪ

      Лучше при помощи метатегов закрой все страницы пагинации, и проблем не будет.

      • Simur (20 комм.)

        Это должно выглядеть как-то так?

        if ($subaction == 'userinfo' OR

        $subaction == 'allnews' OR

        $subaction == 'newposts' OR

        $do == '*/page' OR

        $do == '*/*/page' OR

        $do == 'go' OR

        $do == 'stats' OR

        $do == 'addnews' OR

        $do == 'register' OR

        $do == 'favorites' OR

        $do == 'rules' OR

        $do == 'pm' OR

        $do == 'feedback' OR

        $do == 'lastcomments' OR

        $do == 'lostpassword' OR

        $do == 'search' OR

        $do == 'lastnews' OR

        $do == 'alltags' OR

        $do == 'tags' OR

        $dle_module == 'date' OR

        (intval ($_GET['cstart']) > 1 )) $metatags .= <<<HTML

        \n<meta name="robots" content="noindex,nofollow" />

        HTML;

        Если что-то лишние, то подскажите пожалуйста что убрать. Заранее спасибо)

  160. ivanet (2 комм.)

    Пожалуйста, помогите разобраться с дублями! Есть страница вида http://мой сайт/articles/74-страница.html/ Недавно заметила в индексе гугла страницы такого вида http://мой сайт/articles/articles/articles/articles/74-страница.html/ , причём эти articles/можно добавлять бесчётное количество раз и каждый раз будет открываться одна и та же страница. Всё это применимо не только к статьям из articles/, но и к другим категориям сайта. Что делать ???

    • ivanet (2 комм.)

      Проблема исчерпана, решение найдено в статье описаной выше, "Устраняем проблему с дублированием полной новости по разным адресам" АлаичЪ, спасибо огромное за Ваш бесценный труд !!!

  161. SergeS (1 комм.)

    Доброго времени суток. У меня аналогичная ситуация — примерно неделю назад создал себе новый сайт, он еще путем не проиндексировался в Яндексе. А вот Гугл уже его схавал и посмотрел, что же влетело в индекс, когда посмотрел, то там одни дубли страниц.

    Помогите пожалуйста навести порядок? По тому как один сайт, я уже под фильтр Яндекса загнал( и как мне обьяснили — это из — за дублей.

    Дайте дельный совет, что там закрыть, то надо. Статью я Вашу прочитал и у меня на сайте выполнено только, то что зеркала я слил и все. Домен в подписи на сайт, оставил.

    За ранее спасибо!!!

  162. Павел (2 комм.)

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

    Руководствовался Вашими советами по оптимизации. Заметил, что страницы сайта по адресу fc-arsenal.by/index.php?newsid=5493 почему-то редиректятся на http://www.5493-tekstovaja-transljacija-matcha-uigan-arsenal.html/.

    Где я что-то упустил? Спасибо.

  163. Владимир (2 комм.)

    Помогите пожалуйста. При выполнение пункта: "Устраняем неразбериху с категориями их вложенностью и слешем / на конце" не происходит редирект на нужную страницу, а появляется пустая страница с текстом: Redirect

    • АлаичЪ

      Значит или что-то не так сделал или не для той версии движка используется правка (правка совместима только с версиями до 9.2 включительно).

  164. pnul (2 комм.)

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

    Подскажите пожалуйста, как правильно убрать дубль с index.php у галереи и форума, с адресами sipe.ru/gallery/index.php и site.ru/forum/index.php?

  165. Юрий (23 комм.)

    Склеиваем адреса страниц /page/1/ с основными адресами для главной страницы и категорий

    Если делать вставку в .htaccess, то ничего не работает. А вот если по инструкции внести изменения только в файл /engine/engine.php, то все прекрасно работает.

  166. Simur (20 комм.)

    Здравствуйте, сразу извиняюсь за тупость, но так нужно?

    ### START Определяем главное зеркало как www.site.ru (www.site.ru заменить на свой домен, например www.alaev.info)

    RewriteCond %{HTTP_HOST} ^alaev\.info$ [NC]

    RewriteRule ^(.*)$ http://www.alaev.info/$1 [R=301,L]

    ### END Определяем главное зеркало

    • АлаичЪ

      Ну, если твой сайт расположен по адресу www.alaev.info, то именно так и нужно =)

      • Simur (20 комм.)

        Ну нет))))

        Там я пропишу свой)))

        АлычЪ, а подскажи еще пожалуйста, что прописать, чтоб убрать дубли:

        http://www.site.ru/forum и http://site.ru/forum?

        И в каком это хтачес прописать: сайта или форума?

        Заранее спасибо!!!!

  167. 533312 (11 комм.)

    Устраняем неразбериху с категориями их вложенностью и слешем / на конце >>

    для 7.5 версии DLE Нет решения? гугл жалуется (Страницы с повторяющимися заголовками (теги title) 2)

  168. mfa (3 комм.)

    Здравствуйте! Подскажите пожалуйста решение. Сайт на DLE 7.5 (знаю старый, но мой :)).

    Так вот проблема:

    http://site.com/category

    и

    http://site.com/bla-bla-bla/category

    выдает одно и то же, то есть не редиректит обратно на /category и можно понаписывать там всякой ерунды.

    Как побороть? Буду Очень благодарен, если получится решить.

    • АлаичЪ

      Увы, такой старой версии у меня нет, так что смотреть негде. Придется как-то самостоятельно пытаться сделать по аналогии с написанным в посте.

  169. Алекс (45 комм.)

    Оптимизирую уже второй сайт (дле 9.8) по твоим руководством, вот сейчас всплыл такой момент, по адресам типа http://site.ru/page.htmlbla-bla-bla открывается главная страница site.ru, то есть полный ее дубль.

    С этим надо что-то делать или не истерить?

    • АлаичЪ

      Добавь после RewriteEngine On:

      RewriteBase /
      RewriteCond %{REQUEST_URI} ^(.*).html(.+)$
      RewriteRule ^(.*).html(.+)$ $1.html [R=301,L]
      • Алекс (45 комм.)

        То, что надо. Редиректит с site.ru/page.htmlbla-bla-bla на site.ru/page.html

        Спасибо, Алаичъ!

  170. Антон (5 комм.)

    Автору большое спасибо!

    Сделал все как описано в этих статьях. Но вот такой бок появился:

    http://site.ru/8-novost.html и http://site.ru/1,1,8-novost.html — одинаковые и не редиректит на верную новость, вместо новости показывается главная страница. К стати вместо (1,1,) можно поставить любые цифры и сколько угодно их, также вместо "," можно поставить точки — эффект тот же.

    Подскажите пожалуйста, как сделать редирект на верную новость?

    Двиг версии 9.5, тип ЧПУ 2

    • АлаичЪ

      Добавь после RewriteEngine On:

      RewriteBase /
      RewriteCond %{REQUEST_URI} ^(.*)([0-9]+),([0-9]+),(.*).html$
      RewriteRule ^(.*)([0-9]+),([0-9]+),(.*).html$ $1$4.html [R=301,L]
      • Антон (5 комм.)

        Большое спасибо! Теперь редиректит на верную новость.

        Но решилась только часть проблемы — много цифр через запятую (http://site.ru/1,1,8-novost.html) редиректятся правильно, но если поставить только одну цифру и запятую (http://site.ru/4,8-novost.html), то снова летим на главную.

        И еще: та же проблема и с точками после цифр — http://site.ru/1.1.5.8-novost.html и http://site.ru/5.8-novost.html это все летит на главную, ссылки остаются такими же.

        Помоги плизз

        • АлаичЪ

          Прекрати сочинять чушь и успокойся. Надо решать реальные существующие проблемы, а не пороть горяку. Я могу придумать 100500 ошибочных url, которые будут дублировать что-нибудь, но то ведь не значит, что надо делать 100500 редиректов!

  171. Evgenii (3 комм.)

    при выполнении пункта "Склеиваем адреса страниц /page/1/ с основными адресами для главной страницы и категорий" появилась такая проблемка! при переходе на страницу http://site.net/категория/page/1/ переадресация на страницу http://site.net/категория/ не происходит а выдает 404 ошибку и в адресной строке отображается такой адрес http://site.net/usr/local/pem/vhosts/******/webspace/httpdocs/site.net/категория/

    а при http://site.net/категория/page/1 переадресация проходит отлично на http://site.net/категория/

    • АлаичЪ

      Ага, понятно. Правки вносились и в htaccess и в php? Если в htaccess вносились, то перед этими правками стоит добавить строкe:

      RewriteBase /

      И все будет в порядке. Проверьте и отпишитесь о результатах.

      • Evgenii (3 комм.)

        Изменения вносились строго по вашей инструкции (.htacces php файлах)

        Спасибо вам, после добавления строки реврайтебасе / в фаиле .хтаксес все заработало на ура)))

  172. Evgenii (3 комм.)

    АлаичЪ

    У меня есть такой вопрос к вам, нужно ли делать редирект со старых урлов на новые на дле 9.8 при смене чпу с тип2 (такой вид был на полную новость http://site.ru/категория/подкатегория/id-имя новости.html) на тип1 (http://site.ru/id-имя новости.html) ???? или они обрабатываются автоматом при включенной функции "обрабатывать неверные урл.чпу"

    Если надо делать 301 редирект,то подскажите пожалуйста как правильно его сделать?

    • АлаичЪ

      Откуда мне знать :) Я тип ЧПУ каждый день не меняю! Просто возьмите и попробуйте. Насколько мне известно, ничего "шаманить" не придется, редиректы должны сами срабатывать. Ну. и понятно, что необходимо активировать соответствующую настройку, о которой вы и говорили.

  173. Влад (1 комм.)

    Добрый день! Имею проблему следующего характера. После выполнения ваших рекомендаций дубли в большем пропали. Также я сменил тип УРЛ на 1 тип, для того чтобы большая часть старых УРЛ показывала Гуглу 404ю ошибку. Но, почему то, вместо 404й, старые урл все ведут на статью, которая опубликована на главной странице! Не могли бы вы помочь советом, как сделать,чтобы старые УРЛ вели на 404?

    • АлаичЪ

      При смене типа ЧПУ срабатывает автоматический редирект для всех новостей на новые адреса. Это правильно и так должно быть.

  174. Эдвард (16 комм.)

    Здравствуйте. На двbжке DLE у меня на сайте несколько категорий, у каждой категории несколько page с разными видео роликами, я написал контент для 1-ой категории, но он появляется один и тот же на каждой странице этой категории, как можно запретить показывать один и тот же текст на разных страницах в одной категории, и как можно вставить другой текст в страницу 2, 3, 4 ...? Заранее спасибо за ответ.

  175. VSN (14 комм.)

    Здравствуйте, Александр. В первую очередь хочу выразить благодарность за ваши труды и вообще за то что вы есть) Ваши рекомендации и инструкции приходятся как ни к стати. Удивительно, что подобной информацией вы делитесь с общественностью совершенно бесплатно. Оптимизаторы за подобное на форумах готовы ободрать до нитки)

    Возможно вопрос будет не по теме, но я буду признателен если вы поможете. Есть сайт на дле 9.8, главная страница у него с определенным количеством кратких обзоров из различных категорий, которые выводятся с помощью тегов {custom}. Дело в том, что имеется необходимость в выводе ВСЕХ новостей тегом {content} в виде каталога с стр. пагинации, думал использовать http://site.ru/page/1/, но происходит редирект на главную. Третий день голову ломаю, как вывести все новости на отдельной странице. Прошу помочь.

    • АлаичЪ

      Не знаю даже, как сделать такую хитрость без модулей. Можно поместить тег {content} в теги [not-page-count=1,2,3][/not-page-count] и давать ссылку на http://site.ru/page/2/. Правда новостей с первой страницы там не будет видно. Но можно костыль сделать, на странице списка новостей в админке выбрать несколько (ровно столько, сколько выводится новостей на одной странице) новостей старых и зафиксировать их. Получится так, что эти новости займут всю первую страницу и переместят самые новые новости на вторую страницу, что нам и надо.

  176. Валентин (67 комм.)

    Здравствуйте! У себя на сайте, я отключил мобильную версию сайта из-за того, что раньше была ссылка на мобильную версию сайта в шаблоне, и гугль пишет что мол дубли титле и дубли метаописаний главных страниц сайта "/ и /index.php?action=mobile", так вот после отключения ссылка на /index.php?action=mobile в адресной строке не исчезает при переходе по ней, хотя находишься на обычной версии сайта...

    Как убрать эту ссылку из адресной строки, или может редирект прописать какой то надо на главную например...

    Спасибо. dle — 9.6

    • АлаичЪ

      Да, если эта ссылка больше не нужна, можно сделать редирект, я писал об этом здесь http://alaev.info/blog/post/4393

      Иначе, ссылку можно просто закрыть от индексациии через robots.txt

  177. Валентин (67 комм.)

    Подскажите как можно убрать дубли title и description для страниц в новости, которая разбита по страницам?

    В google постоянно висят эти дубли...

    • АлаичЪ

      Посмотри первую часть уроков по оптимизации, там в комментах я, кажется, писал варианты.

  178. Виталий (1 комм.)

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

    Не срабатывает редирект вида: http://site.ru/category/page,1,2,895-name.html, и подобные этому, все делал согласно описанного поста. Версия DLE 7.5, помогите пожалуйста разобраться с данным редиректом, хотя по данной статье это была php вставка в код DLE.

    Спасибо!

    PS Да, хочу также добавить, что это только на тех новостях, где есть несколько страниц комментариев.

    PPS Думал что можно сделать редирект в этом классе /engine/classes/comments.class.php но в версии DLE 7.5 нет такого файла в дистрибутиве. Буда рад, если поможете.

    • АлаичЪ

      Такие страницы и не должны редиректиться, т.к. это адреса страниц комментариев.

  179. Эдуард Говнов (3 комм.)

    Есть сайт www.site.ru и форум www.site.ru/forum/

    Все новости с сайта, автоматом дублируются на форум, и соответственно Яша индексирует и то и другое.

    Как это может повлиять на продвижение сайта?

    Если все это очень плохо, то стоит ли в robots.txt запретить индексацию форума?

    • АлаичЪ

      Сложно сказать однозначно.

      Возможно, стоит выводить на форуме лишь анонс новости или просто первые xxx символов, а ниже ссылку на новость на сайте.

  180. mixail366 (13 комм.)

    Добрый день!

    Надоело мне постоянно удалять вот дубли на главную страницу сайта из гугла вебмастера вот такого типа:

    /trillery-online/Film-on.org

    /uzhasy...

    /voennye-online/194-chernaya-kniga-zwartboek-black-b...

    Даже и не знаю откуда они берутся. Я их удаляю и редирект в файле .htaccess прописываю на подходящую страницу или категории или новости. Через какое то время они отваливаются (примерно через месяц). Но появляются новые. Помогите как то с этим справиться. Движок 9.7. Пробовал "Устраняем проблему с дублированием полной новости по разным адресам", не помогает то же.

  181. Валентин (67 комм.)

    АлаичЪ, подскажите как решить проблему с дублями при включенной функцией "Автоматическое формирование буквенного каталога публикаций". Дублируются ссылки на одну и туже страницу каталога вида — /catalog/m/ и /catalog/m (то есть дублируются ссылка на любую букву со слешем со ссылкой на ту же букву без слеша), в шаблоне ссылки на буквы без слеша, не знаю где гугль нашел ссылки со слешем... но он выводит их как "Повторяющиеся заголовки (теги title)" и "Повторяющееся метаописание".

    Подскажите как это исправить, может что то типа 301 редиректа со ссылки с слешем на ссылку без слеша...

    Спасибо.

  182. Павел (4 комм.)

    а как склеивать если у сайта есть зеркало, например www.gbdd.com.ua, gbdd.com.ua, www.gbdd.ru и gbdd.ru, последнее является главным зеркалом.

  183. Саня (2 комм.)

    АлаичЪ, после проведенных манипуляций из данной статьи и из этой http://alaev.info/blog/post/3294, у одного сайта появились дубли главной страницы, такие как site.ru/tut_chto_ugodno/index.html

    Подскажи пожалуйста, как можно от них избавиться.

  184. Евгений (2 комм.)

    Просмотре всю статью и все комменты, но ответа не нашёл (или не увидел).

    Как сделать верный редирект с site.ru/page на site.ru/page.html

    Найденные в сети варианты либо не работают, либо зацикливают до site.ru/page.html.html.html...

    • Евгений (2 комм.)

      Вот закон: можно потратить кучу часов на поиск ответа, не найти, где-нибудь спросить, и ответ найдётся.

      Но теперь htaccess раздулся, и боюсь, что-то дублируется... Но всё работает как надо)

  185. Вячеслав (1 комм.)

    У меня такой вопрос, есть ли решение для моей задачи и как лучше сделать.

    Продукция дублируется порядка трех раз. Например:

    http://www.ruselt.ru/catalog/production/shtil/557/

    http://www.ruselt.ru/catalog/production/r220/557/

    http://www.ruselt.ru/catalog/production/vse_stabilizatory_napryazheniya/557/

    Поисковая система индексирует все три страницы. Я делал яндекс острова и указывал там разделы допустим r220 ну или в маркете и других сервисах. Если я закрою в robots.txt от индексации этот раздел, то будет ли функционировать маркет, острова и так далее. А так же эти страницы отличаются title

    Что лучше убрать и посредствам чего это сделать?

    • АлаичЪ

      Всегда рекомендуется, чтобы у товара была одна единственная ссылка, все остальные дубли — зло. Но если их закрыть от индексации, то острова не должны пропасть. Но в этом у меня нет уверенности, потому задайте вопрос в поддержку Яндекса по островам для надежности.

  186. MFA (3 комм.)

    Уважаемый Алаич! Подскажите пожалуйста, как настроить редирект в дле 7.5 со следующих урлов на правильные:

    site/uploads/pic/046.jpg+ACI

    site/uploads/pic/046.jpg+ACIAPg

    site/uploads/pic/238.jpg+ACIAPgA8-/a+AD4

    site/uploads/pic/vna.jpg%5Cu0026size=103.4KB%5Cu00…

    site/uploads/pic/158.jpg%5Cu0026size=56.7KB%5Cu0026p=%...

    Появились вот такие внешние ссылки на картинки сайта. Но кривые какие-то.

    Надо сделать редирект с *.jpg+* на *.jpg и с *.jpg%* на *.jpg

    Заранее спасибо!

    • АлаичЪ

      Интересные дела. Могу предположить, что должно помочь следующее:

      RewriteRule (.*).jpg(.+) $1.jpg [R=301,L]
  187. Sibiryak (6 комм.)

    Алаич, привет, такой вопрос. Вот кусок из хтассес DLE:

    # Редирект для главной (с /index.php,html на /)
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
    RewriteRule ^index.php$ / [R=301,L]
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.html HTTP/
    RewriteRule ^index.html$ / [R=301,L]

    А как сделать наоборот? Что бы редиректило с site.com на site.com/index.html

    Только не на DLE, а на html шаблоне

    Будьте добры, подскажите?

    • АлаичЪ

      Что значит «Только не на DLE, а на html шаблоне»? Я не понимаю.

      А сделать редирект site.com -> site.com/index.html проще простого:

      RewriteRule ^$ /index.html [R=301,L]
      • Sibiryak (6 комм.)

        О спасибо огромное!!!

        Да я просто не так выразился на счет html шаблона и dle ...

  188. Vadim (6 комм.)

    АлаичЪ, подскажите пожалуйста!

    Как сделать редирект такого плана??????

    site.ru/tags/one+two+three/ --> site.ru/tags/скачать+one+two+three/

    site.ru/tags/two+three+one/ --> site.ru/tags/скачать+two+three+one/

    site.ru/tags/three+two+one/ --> site.ru/tags/скачать+three+two+one/

    • АлаичЪ

      Сделать не сложно, но меня смущает кириллический url, возможны проблемы. Кириллические символы в адресе — это плохо. Да и теги тоже — зло.

      • Vadim (6 комм.)

        Смотрите какая ситуация: по яндекс-визор смотрю что ко мне на сайт попадают на страницы которых нет

        пример: попадают на страницу site.ru/tags/one+two+three/(которой нет), но есть страница site.ru/tags/скачать+one+two+three/

        вместо слова "скачать" там такая абревиатура "%F1%EA%E0%F7%E0%F2%FC"

        По поводу теги это зло, то оно то понятно, но как без их.

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

        • АлаичЪ

          ГС каких свет не видывал...хотя почему же не видывал, еще как видывал — их целая куча!

          На счет редиректа, можно попробовать так:

          RewriteRule ^tags/(.+)$ /tags/%F1%EA%E0%F7%E0%F2%FC+$1 [R=301,L]

          А может быть и так:

          RewriteRule ^tags/(.+)$ /tags/скачать+$1 [R=301,L]

          И все же я бы отказался от тегов. Удалил бы их все и сделал редирект на главную:

          RewriteRule ^tags/(.+)$ / [R=301,L]
          • Vadim (6 комм.)

            АлаичЪ, еще вопросик, теги вообще не использовать? Просто если их не использовать, то с пс сложно будет попасть на мой сайт.

            • АлаичЪ

              Ну если трафик на сайт идет именно на теги, значит пока убирать их не стоит. Но это же и значит, что публикации на сайте — дерьмо, раз поисковики считают релевантными страницы тегов.

          • Vadim (6 комм.)

            Хочу прописать это:

            RewriteRule ^tags/(.+)$ / [R=301,L]

            А у меня прописано это:

            RewriteRule ^tags/([^/]*)(/?)+$ index.php?do=tags&tag=$1 [L]

            RewriteRule ^tags/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=tags&tag=$1&cstart=$2 [L]

            Нужно просто рядышком дописать или заменить?

  189. Алена (2 комм.)

    Здравствуйте. Подскажите, как через .htaccess сделать, чтобы при переходе на одну страницу открывалась другая?

    Пример:

    Нажимаем на http://alaev.info/channel.aspx?chid=23 открывается http://alaev.info/blog/post/2400

    PS. Все перепробовала, никак не получается.

    • АлаичЪ

      Вам сюда — http://alaev.info/blog/post/4393

      А делается довольно просто:

      RewriteCond %{QUERY_STRING} ^chid=23$ [NC]
      RewriteRule (.*) /blog/post/2400? [R=301,L]
  190. Simur (20 комм.)

    И Считается ли дублем страницы страницы со слешем:

    сайт.ру/lastnews/

    и

    сайт.ру/lastnews

    А также страницы пагинации:

    сайт.ру/lastnews/page/1,2,3 и т.д./

    и

    сайт.ру/lastnews/page/1,2,3 и т.д.

    Также при проделке пункта: Убираем index.php из адреса главной страницы и страниц категорий

    1. с этими страницами все ОК, идет редирект на главную (http://site.ru и http://site.ru/index.php, http://site.ru/category/index.php)

    2. А вот переходя на эти страницы (http://site.ru/search/index.php, http://site.ru/tag/index.php), переходит на страницы без index.php (http://site.ru/search/, http://site.ru/tag/). А на странице пишется: По данному адресу публикаций на сайте не найдено, либо у вас нет доступа для просмотра информации по данному адресу.

    Это так и должно быть? Т.к. на ДЛЕ 9.7 после этих правок, перекидывало на главную страницу...

  191. Блогер (1 комм.)

    АлаичЪ помоги устранить проблему:

    После применения: "Устраняем проблему с дублированием полной новости по разным адресам"

    Перестает работать распечатка страницы в новости, как только убираю код //обработка неправильного alt-name и 301 редирект все прекрасно работает, такое дело что печать страницы очень нужна, а дубль страниц тоже не хочется убирать. Спасибо. Буду очень благодарен.

    • АлаичЪ

      В данный момент помочь с этим вопросом не могу. Нет времени и нет сайта, где я смог бы этим заняться, везде страницы печати отключены.

  192. Sergey (2 комм.)

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

    Помогите, пожалуйста, решить проблему, сам уже всю голову сломал, найти причину не могу. Пару месяцев назад стали появляться ошибки в гугл вебмастере, в мегаиндексе (онлайн анализатор сайта) такого плана, к странице любой странице сайта добавляется: %20http:/globalphysics.ru/igry-po-fizike. Вот пример:

    http://globalphysics.ru/online-testy-po-fizike/%20http:/globalphysics.ru/igry-po-fizike

    http://globalphysics.ru/physics/speed/%20http:/globalphysics.ru/igry-po-fizike

    http://globalphysics.ru/tags/%F2%E5%EF%EB%EE/%20http:/globalphysics.ru/igry-po-fizike

    http://globalphysics.ru/tags/%F3%F7%E5%ED%FB%E9/%20http:/globalphysics.ru/igry-po-fizike

    http://globalphysics.ru/page/7/%20http:/globalphysics.ru/igry-po-fizike

    то есть, к адресу раздела сайта, например: http://globalphysics.ru/online-testy-po-fizike/ через пробел добавилось %20http:/globalphysics.ru/igry-po-fizike и таких ошибок сотни.

    http://globalphysics.ru/igry-po-fizike — это тоже один из разделов сайта, но почему он добавляется к каждой странице, и тем более после http один слэш. И кроме этого гугл показывает, что на этот раздел (http://globalphysics.ru/igry-po-fizike) ссылаются все страницы сайта.

    Напрямую я этого не вижу, а гугл и другие анализаторы находят...

    В чем проблема, куда копать?

    Спасибо!

    • АлаичЪ

      Советую сделать такой вот редирект (не уверен на 100%, что именно такой код сработает):

      RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /(.+)http(.*) HTTP/
      RewriteRule ^(.+)http(.*)$ / [R=301,L]
      • Sergey (2 комм.)

        Попробую... Спасибо!

        То, что вы написали, решает проблему практически всех неверных адресов (происходит редирект на главную), за исключением адреса такого вида http://globalphysics.ru/page/7/%20http:/globalphysics.ru/igry-po-fizike

        Получается к странице пагинации добавляется %20http:/globalphysics.ru/igry-po-fizike в этом случае показывается 7 страница и редирект не происходит.

        Помогите, еще решить эту проблему. Спасибо.

  193. Andrey (2 комм.)

    Подскажите в чем может быть причина, того, что после перенеса сайта на движке DLE 9.8 на новый сервер, перестал функционировать редирект с www.sayt.ru — sayt.ru, с sayt.ru/index.php — sayt.ru и т.д.

  194. Элим (3 комм.)

    Добрый день помогите пожалуйста я склеил зеркала как у вас написано, но потом обнаружил что у меня такие url стали ссылка выше. Как то можно исправить или редирект сделать эта ссылка тоже работает и та

    http://www.elimsband.ru/useful.html

    http://www.elimsband.ru/index.php?do=static&page=useful

    обработка неверных чпу включена

    Спасибо.

  195. vpkach (2 комм.)

    Александр, благодарю Вас, за всю проделанную работу по оптимизации DLE.

  196. Юрий (23 комм.)

    Что дает вот этот код при склеивании первой страницы сайта/категории с основным ее адресом?

    if ( ($config['allow_alt_url'] == "yes") && (intval ($_GET['cstart']) == 1) && (strpos ($_SERVER['REQUEST_URI'], '/page/1') !== false) ) {

    $first_page_url = str_replace ( "/page/1", "", $_SERVER['REQUEST_URI'] );

    header ("HTTP/1.0 301 Moved Permanently");

    header ("Location: $first_page_url");

    die ("Redirect");

    }

    Я вставил только в .htaccess код и все работает. Или я, что-то упускаю?

  197. danila (23 комм.)

    "Устраняем неразбериху с категориями их вложенностью и слешем / на конце"

    Перестала работать в версии 10.2

    Вы не могли бы исправить хак?

    • АлаичЪ

      Оно и не должно работать в 10.2. Написано же "Только версии DLE 8.2-9.2.", а что делать в более старших версиях написано там же.

      • danila (23 комм.)

        Так то оно так, но бывают случаи (как у меня), что опцию «Обрабатывать неверные URL ЧПУ» включить не представляется возможным по некоторым причинам, вот я и пользовался вашими рекомендациями вплоть до версии 10.2.

        • АлаичЪ

          Это явно не стоит того, чтобы делать. По сути, те правки, это и есть обработка неверных url ЧПУ, только для тех версий, где этого нет изначально.

  198. Дзед Саша (45 комм.)

    Как настроить 301 редирект на главную страницу или страницу 404 ошибки с несуществующих урлов картинок?

    http://site.ru/uploads/posts/2013-03/net_takoy_kartinki.jpg

    Сегодня увидел, что по такому адресу у меня дубли главной.

    • АлаичЪ

      Не нужны никакие редиректы, сервер должен быть правильно настроен. Обратись к хостеру.

  199. Станислав (1 комм.)

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

    Тут я не-нашёл ответ на свой вопрос.

    Я сделал на-своём сайте на главной странице один материал (Приветствие, Описание и т.д.)!

    Всё хорошо получилось, но только одна проблема осталась!

    Можно увидеть все страницы сайта только со-второй страницы site.ru/page/2/ и остальные, а первая страница с новосями site.ru/page/1/ перебрасывается на главную (

    Мой вопрос:

    Как мне отключить переадресацию с site.ru/page/1/ на site.ru ???

    Спасибо!

    • АлаичЪ

      Внимательно прочитайте пост, там прямо так пункт и называется. Просто не делайте, что там написано, и не будет редиректа.

  200. Алексей (1 комм.)

    Добрый день.

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

    Изначально был сделан сайт, и построена карта сайта, после индексации через гугл для веб мастеров прошло время и все страници были проиндексированы, решил поменять путь урла, поменял, построил заново карту сайта, загнал в гугл, и теперь такая картина:

    в гугл для веб мастеров

    Оптимизация HTML

    Повторяющиеся заголовки (теги title)

    /product/polo-spring-ii-razmer-m Старый урл (сейчас, переходя по ссылке, страница не найдена)

    /spring-ii/polo-spring-ii-razmer-m Новый урл

    Подскажите пожалуйста как мне удалить старый урл, чтобы гугл не считал его.

    Может кто знает решение?

    Спасибо.

    • АлаичЪ

      Необходимо сделать 301 редирект со старого адреса на новый. Если такой возможности нет, то можно забить, со временем данные сообщения из панели пропадут.

  201. Григорий (3 комм.)

    Автору большое спасибо!!! Я уже ответил в статье про dle 9.3 где поменял урлы на нормальные. Все рекомендации выполнил — и все на УРА! Автор молодец! Побольше бы таких людей и было б гораздо легче нам)))

  202. Дмитрий (3 комм.)

    Спасибо за ваш замечательный блог, очень много полезного из него узнал и реализовал на своем сайте.

    Много где искал но так и не нашел, может Вы могли бы написать пост как в DLE для активного пункта меню можно было убрать ссылку, пример — вместо ссылки добавляется что-то вроде <span class="active">анкор</span> (т.е. ссылка сама на себя пропадает, вместо тега <a> появился другой текстовый тег <span> или <p>)

    • АлаичЪ

      Так это просто делается при помощи тегов [category]. Только вот для каждого пункта надо будет такую конструкцию городить.

  203. Сергей (16 комм.)

    Вопрос. "Полное дублирование сайта по адресам http://site.ru и http://www.site.ru"

    Сделал все как написано, но сайт открывается как с www так и без. Версия 10.2

    Как быть?

  204. Вадик (1 комм.)

    А как для метода "Устраняем неразбериху с категориями их вложенностью и слешем / на конце" сделать чтобы отдавало 404 заголовки и 404 страницу с ошибкой? На 10-й версии дле.

  205. Один не дома (7 комм.)

    в 10.3 не работает редирект на категории со слешем

    пример:

    http://dle-faq.ru/faq/lamers/page/5

    не редиректит

    http://dle-faq.ru/faq/lamers/page/5/

    есть ли решение?

    • Один не дома (7 комм.)

      ставя вот это решение ниже

      //решение проблемы с категориями, которых не существует

      if (!$category_id AND $view_template != "rss") {

      header ("HTTP/1.0 301 Moved Permanently");

      header ("Location: {$config['http_home_url']}");

      die ("Redirect");

      }

      //решение проблемы с категориями, которых не существует

      вообще получаем если страница категории обозначена без слеша то перекидывает вообще в корень сайта

  206. Dmitriy46 (1 комм.)

    Разработчики DLE пишут что в версии 10.3 дублей нет.

    Может кто подтвердить???

  207. Юра (2 комм.)

    Здравствуйте. Не подскажите? Безопасно ли закрывать страницы типа /page/ или /category/page/? Я говорю о полном закрытии в robot.txt (Disallow: /*page/*). Может ли это как-то существенно повлиять на индексацию страниц sait.ru/category/statia.html, то есть скорость индексации и вообще индексации роботом, если скажем статей добавляется много и они уходят в /page/10, или бот будет ходить и находить, но просто не будет индексировать /page/? Так и не нашел вразумительного ответа не на серче не тут, может проглядел, тогда извиняюсь, ткните носом. Заранее спасибо!

  208. Raimond (12 комм.)

    Здравствуйте как сделать редирект для категорий:

    www.site.ru/category/index.php

    www.site.ru/category/index.html

    поставил ваш:

    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html)\ HTTP/

    RewriteRule .* / [R=301,L]

    но он работает только для главной страницы... :(

  209. Евгений (1 комм.)

    Подскажите пожалуйста как убрать tags из url чтобы из http://sait.ru/tags/комедии/ получилось http://sait.ru/komedii/

  210. LoveMusic (8 комм.)

    Не нашел среди ответов, а в посте указано, что не трогать ничего если DLE младше 9.2

    Вопрос: как оставить только страницы, ИМЕЮЩИЕ слеш на конце, в разделах тегов?

    То есть страница типа:

    site.ru/tags/blabla

    должна прекращаться в страницу типа:

    site.ru/tags/blabla/

    Версия DLE 10.4

    Заранее спасибо. С Уважением

  211. Моя квартира (2 комм.)

    У меня сайт выполнен на Версия DataLife Engine: 10.3

    Интересует так же момент дублей страниц категорий без / и с /. Это разумеется site.ru/tags и site.ru/tags/.

    Заметил какую особенность в настройках движка включил "Обрабатывать неверные URL ЧПУ" и сразу все категории начали показываться с /. Получается таким способом убрались дубли или нужно еще что то делать?

    И еще 1 вопрос. решил избавится от дублей ndex.php или index.html, вставил все как нужно, но столкнулся вот с какой проблемой. Сейчас при вводе ndex.php редирект срабатывает и отправляет на ГЛ, а index.html отправляет на главную с / и выдает ошибку 404. Как быть?

    • АлаичЪ

      Для 10.3 ничего не надо делать, только включить "Обрабатывать неверные URL ЧПУ" и все.

      • Моя квартира (2 комм.)

        Спасибо. Так и сделал.

        А вот что на счет этого?

        Решил избавится от дублей ndex.php или index.html, вставил все как нужно, но столкнулся вот с какой проблемой. Сейчас при вводе ndex.php редирект срабатывает и отправляет на ГЛ, а index.html отправляет на главную с / и выдает ошибку 404. Как быть?

        • LoveMusic (8 комм.)

          На DLE нет страницы index.html (если Вы самостоятельно не создавали ее в Статических). А раз ее нет, то и ошибка соответствующая выдается. Ничего не надо делать)))

  212. Эдуард (3 комм.)

    Здравствуйте, при включении функции "Обрабатывать неверные URL ЧПУ" перестает работать вывод результатов Яндекс поиска. Это можно исправить?

    • АлаичЪ

      Не помню, как это решается, но где-то в комментариях к этому или соседнему посту об этом писали.

      • Эдуард (3 комм.)

        Разобрался, ели отыскал в Ваших комментариях ответ на мою задачу) Теперь все работает, нужно было в static.php пару строк уничтожить.

  213. Борис (3 комм.)

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

    Есть ситуация: сайт.ру/категория1/категория2/категория1/категория3

    Как можно убрать эти подкатегории чтобы редирект сразу был на ту, которую дописываешь, а не создавалась целая ветка?

  214. Алексей (3 комм.)

    Как устранить такие дубли:

    .ru/?do=feedback

    .ru/index.php?do=feedback

    .ru/feedback.html

  215. Макс (1 комм.)

    Александр, спасибо за проделанную работу.

    Хочу отметить один недочет (и он очень существенный).

    При двух 301-х "Определяем главное зеркало" и "Убираем слеш в конце" получается два последовательных 301-х, что совсем не хорошо и даже очень вредно. Пытался объединить эти два редиректа в один, но так ничего и не получилось.

  216. Евгений (7 комм.)

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

    Актуальность: Только версии DLE 8.2-9.2

    Работает и на 10.0 — наконец-то поправил редиректы при смене ЧПУ с тип 1 на тип 2

    У меня открывались новости по обойм адресам, типа:

    http://URL.ru/category/123_news_name.html (сменил ЧПУ и новость должна выглядеть так)

    http://URL.ru/123_news_name.html (но вот незадача — старый адрес тоже открывается!)

  217. Адиль (1 комм.)

    Здравствуйте! редирект /page/1/ не работает на dle 10.4, не подскажите в чем проблема?

  218. Игорь (7 комм.)

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

    • АлаичЪ

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

  219. Давид (2 комм.)

    Здравствуйте! После сделанного все так как написано Вами не мог зайти на сайт пишет следующее "Внутренняя Ошибка Сервера. На сервере произошла внутренняя ошибка или неправильная и не смог выполнить ваш запрос. Пожалуйста, обратитесь к администратору сервера, "тут моя почта" и информировать их о времени произошла ошибка, и все, что вы могли бы сделать, что может вызвать ошибки. Дополнительная информация об этой ошибке могут быть доступны в журнал ошибок сервера." В чем может быть проблема?

    PS версия dle 10.5

    • АлаичЪ

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

  220. Сергей (1 комм.)

    Приветствую! Подскажите как избавиться от дублей такой страницы

    /?do=orderdesc

    /index.php?do=orderdesc

  221. Сергей (1 комм.)

    Вот эта проблема с редактированием профиля решена http://alaev.info/blog/post/2400#comment-9812

    Но как оказалось осталась проблема с заполнением дополнительных полей при регистрации (там где "Уважаемый посетитель! аккаунт зарегистрирован, но информация о вас не полная, заполните пожалуйста ... ") . Т.е. посетитель заполняет Имя, Город, а в профиле это не сохраняется. Не сохраняет именно с этой страницы, до внесения изменений все было нормально.

    Как победить?

    Заранее спасибо!

  222. Yamakasi (9 комм.)

    столько коментов так и не нашёл вопроса по поводу статической страницы))

    а какой вариант убрать дубли с статической страницы? ну когда 1 статическая страница разбита на несколько, на dle 10.1 попадает под поиск типо таких страница /page,2,blabla.html

  223. ян (4 комм.)

    Подскажите пожалуйста, как оптимизировать дубли страниц такого типа — /page,1,2,502-watch-dogs-2013.html ?

    • АлаичЪ

      В свежих версиях DLE 10.x и выше это уже решено. Для старых версий я писал об этом в первой части http://alaev.info/blog/post/2373

  224. Иван (2 комм.)

    После применения редиректа для главной страницы перестал работать на сайте расширенный поиск http://www.ctm-stroy.ru/index.php?do=search , причём поиск с главной страницы работает, не могу понять в чём причина

  225. Сергей (1 комм.)

    Здравствуйте, прочитал все статьи, такой вопрос, а если версия дле 9.7 и у меня в индексе яндекса к примеру есть дубликаты таких страниц как:

    http://site.ru/page/?1&17&298-zakazat-film.html

    http://site.ru/drama/page,1,2,5501-mister.html

    http://site.ru/drama/page,1,3,5501-mister.html#comment

    очень много страниц в индексе — http://site.ru/? и после знака "?" любые буквы — знаки и движок позволяет при таких неправильных ссылках заходить на главную страницу без редиректа, а по идеи должна быть страница 404, по поводу дублей страниц с комментариями, здесь нашел исправление но до версии дле 9.6, как же быть с 9.7?

  226. Артём (1 комм.)

    Здравствуйте, не получается настроить редирект site.ru/index.php не хочет перекидывать просто на site.ru Перепробовал уже все варианты со страниц. DLE 7.5. Что самое интересное, при вводе index.html — он работает, при вводе index.php — нет. Помогите, пожалуйста, решить проблему.

  227. Александр (1 комм.)

    Отличное руководство, все понятно и просто, а самое главное работает,

  228. Евгений (1 комм.)

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

    Не подскажите как убрать пагинацию на сайте

    http://site/kat/pod/page/2/

    http://site/kat/pod/page/3/

    http://site/kat/pod/page/4/

    Что бы в индексе оставалось Толька http://site/kat/pod/

    Версия 10.4 ...(В индексе 300 материалов и столько же это пагинации )

  229. ds8880 (6 комм.)

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

    После обновления до версии 10.6 и проделывания и выполнения оптимизации title из 1 части, добрался до 2 части и возникла проблема на "Редиректы с index.php или index.html на сайт":

    ### Редиректы с index.php или index.html на сайт
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.(php|html) HTTP/
    RewriteRule .* / [R=301,L]

    Дело в том, что с http://sait.ru/index.php с указанным кодом и без него происходит редирект на http://sait.ru/, а при вводе http://sait.ru/index.html появляется хвост http://sait.ru/?do=static&page=index&seourl=index — также с кодом и без него.

    По категориям еще не проверял.

    Как от него избавиться от этого хвоста?

    • ds8880 (6 комм.)

      Нашел решение.

      Открыть /engine/modules/static.php найти:

      @header ( "HTTP/1.0 404 Not Found" );

      Выше вставить :

      if (trim ($name) == "index")
      {
      	header ("Location: /");
      	exit ();
      }

      Теперь с sait.ru/index.html -> sait.ru/