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 — https://alaev.info/blog/post/2373
Часть 3, Особенности внутренней оптимизации движка — https://alaev.info/blog/post/3294
Часть 4, Исправление для версий DLE 9.3, 9.4, 9.5, 9.6 — https://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 месяцами.

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

Александр «АлаичЪ» Алаев
Александр «АлаичЪ» Алаев

Вот уже 18 лет я профессионально занимаюсь созданием и продвижением сайтов и 13 лет с удовольствием пишу в любимый блог. Создал заслужившие доверие в seo-сообществе программы FastTrust и ComparseR и известный сервис для проверки траста сайтов CheckTrust.ru.

В 2014 основал веб-студию «АлаичЪ и Ко» в Краснодаре: 1 место в рейтинге агентств интернет-маркетинга (Рейтинг Рунета), 2 место в рейтинге SEO-компаний (CMSmagazine), 12 место в рейтинге известность бренда SEO-компаний в России (SeoNews).

Выступаю на профильных конференциях (All In Top, SEO Conference, SEMPRO, Baltic Digital Days). Веду канал в telegram про seo и бизнес. SEO-специалист года 2019 и 2020 (Sape).

Ерунда и баянЪ!Зачет! Плюсую!
+42

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

30 000 руб.

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

45 000 руб.

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

5 000 руб./час

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

70 000 руб.

Я начал запись своего обучающего курса по seo-продвижению.

В каждом видео я разбираю какую-то одну важную тему, и делаю это последовательно, в порядке, подходящем для изучения с нуля. Видео выкладываются раз в неделю – по средам. Я думаю, весь курс будет состоять из 50-70 роликов, так до конца еще далеко, а значит самое время подписаться и начать изучение вместе со мной.

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

Комментарии: 724 Написать комментарий
  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?

        Ответить
        • АлаичЪ

          Напишите

          Disallow: */page/

          И будет счастье и радость =)

          Ответить
    • Алексей Кротов (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" ситуация не очень хорошая. Вот одни из подобных страниц:

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

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

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

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

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

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

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

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

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

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

    Ответить
    • АлаичЪ

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

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

      Ответить
      • NMitra (23 комм.)

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

        Ответить
        • АлаичЪ

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

          Ответить
          • 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 комм.)

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

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

            Ответить
            • АлаичЪ

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

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

              Ответить
              • Стас (9 комм.)

                Я обновился, но проблема всё-же осталась...

                Ответить
                • АлаичЪ

                  Активировали в настройках пункт про seo контроль url'ов?

                  Ответить
                  • Стас (9 комм.)

                    "Активировали в настройках пункт про seo контроль url'ов?"

                    А где он там находится?

                    Ответить
                    • АлаичЪ

                      Вкладка "Настройки системы" -> "Обрабатывать неверные URL ЧПУ"

  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. АлаичЪ

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

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

    Ответить
    • Алексей (2 комм.)

      Проблема просмотр своего профиля осталась есть у кого мысли

      Ответить
      • АлаичЪ

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

        Ответить
  25. Артур (4 комм.)

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

    Ответить
    • АлаичЪ

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

      Ответить
  26. Артур (4 комм.)

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

    Ответить
    • АлаичЪ

      Ага, понял. А до этого, так же было, что со слешем на конце нормально, а без него 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

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

    Ответить
    • АлаичЪ

      Вам, в первую очередь, стоит изучить вот этот пост — https://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% в модуле.

      Ответить
      • gr (2 комм.)

        Огромное Вам спасибо за четкий ответ! Стало понятно, где искать ответ.

        Ответить
  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'у с ЧПУ, вторая без.

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

      Ответить
      • Василий (1 комм.)

        А как настроить правило для редиректа с index.php?newsid= на сайт.ру/категория/новость.html

        Ответить
        • АлаичЪ

          Включить в админке обработку неверных урл ЧПУ.

          Ответить
  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]

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

      Ответить
      • Дмитрий (3 комм.)

        Спасибо огромное! Абалдеть как все просто)

        Ответить
        • АлаичЪ

          Я бы тоже балдел, если бы было все так просто :) Но это, к сожалению, совсем не так...

          Ответить
  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) от индексации. Заранее спасибо за любой совет.

    Ответить
    • АлаичЪ

      Ну а как же, конечно у меня есть решение — первая часть руководства: Оптимизация заголовков Title для DLE.

      Ответить
      • Snake2010 (11 комм.)

        Конечно же я прочитал обе части и применил все, что описывалось. Не понимаю чего Google надо? Возможно мало времени прошло и надо подождать.

        Ответить
  57. Snake2010 (11 комм.)

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

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

    Ответить
    • АлаичЪ

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

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

      Ответить
      • snake2010 (11 комм.)

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

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

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

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

        Спасибо.

        Ответить
        • АлаичЪ

          Да, правильно. UPD 22.02.2012 — это самостоятельное дополнение.

          Ответить
  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% дублированный контент.

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

    Ответить
    • АлаичЪ

      Проверил, действительно такая проблема имеет место быть. Я написал решение в третьей части руководства — https://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]

                Есть мысль, что поможет.

                Ответить
                • Василий (6 комм.)

                  Вот это помогло, кажись. Огромное спасибо! Ежели чего — отпишу.

                  Ответить
  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 всё в квадратиках. Сайт в форму добавил. Буду очень признателен, если посмотрите. Спасибо.

                Ответить
                • АлаичЪ

                  Мне вообще ничего не показывает, пишет что ошибка кодировки и все.

                  Так что надо вам вспоминать, что делали, что меняли, какие модули ставили и т.д.

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

                  Ответить
                  • Сергей (6 комм.)

                    Ага большое спасибо! Буду искать.

                    Ответить
  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'] );
      Ответить
      • Andrey (8 комм.)

        Теперь все в порядке, спасибо.

        Ответить
  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/), а вот для главной сделать редирект со всех страниц. Заранее благодарен за помощь.

    Ответить
    • АлаичЪ

      Вам в помощь — https://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 Редирект с первой страницы на основную
      Ответить
      • Ruslan (10 комм.)

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

        Ответить
        • AlexSilver (4 комм.)

          Да, так всё отлично работает. Спасибо!

          Ответить
  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, к примеру?

    Ответить
    • Александр (2 комм.)

      Хех, не ждать ответа? (

      Ответить
      • АлаичЪ

        Я не знаю как это сделать. А разбираться сейчас у меня, к сожалению, нет времени :(

        Ответить
  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" и всё.

            Ответить
            • АлаичЪ

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

              Ответить
              • AlexP_RUS (24 комм.)

                Эхх... ну ладно. Подписался тут, буду ждать, вдруг найдёте решение.

                Ответить
  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

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

    Ответить
    • АлаичЪ

      Все здесь — https://alaev.info/blog/post/3294

      Ответить
      • Bandidos (4 комм.)

        Выполнил всё как описано, не помогло((

        Ответить
  100. VIC (7 комм.)

    Всплыли новые дубли ))) одно закрываешь другое появляется

    site/statya.html&post=-29824380_239

    такое лучше в роботсе закрыть или через .htaccess

    Ответить
    • АлаичЪ

      Это ссылки из контакта так проставляются. Закрой в robots.txt пока что.

      Ответить
  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/

    Подскажи пожалуйста что делать? Метод что ты выше написал не решает эту проблему. спасибо.

    Ответить
    • АлаичЪ

      Можно так попробовать — https://alaev.info/blog/post/2400#comment-5960

      Ответить
  105. Максим (6 комм.)

    помогите сделать редирект со старого адреса категории на новый

    сделал вот так

    Redirect 301 /allfilms/ /films/

    но при переходе на /allfilms/

    выбивается такая ссылка

    http://live-torrent.ru/films/?do=cat&category=allfilms/

    как сделать чтобы было

    http://live-torrent.ru/films/

    Ответить
    • АлаичЪ

      Redirect 301 /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;

    }

    Ответить
    • АлаичЪ

      Я без понятия, как писать команды для nginx :(

      Ответить
  110. Тарас (7 комм.)

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

    При выполнения это пункты выскакивает ошибка —

    Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

    С чем это связано может быть? Движок 9.6!

    Ответить
    • АлаичЪ

      Это связано с БД, но никак не с правками файлов, которые я описывал...

      Ответить
  111. Роман (15 комм.)

    "Устраняем неразбериху с категориями их вложенностью и слешем / на конце" — Проделал данную операцию, вроде все получилось, но в google вебмастер все равно показывает мне дублирующие ссылки со слэшем и без. Что я делаю не так?

    Ответить
    • АлаичЪ

      Со временем вылечит, не все стразу и не все так быстро.

      Ответить
      • Роман (15 комм.)

        ясно, будем ждать...

        Ответить
  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/

    Ответить
    • АлаичЪ

      Для этого надо убрать строку RewriteRule ^(.*) page/1/$ $1/ [R=301,L]

      Ответить
  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,

        т.е. рекомендуете чисто обновиться как описано в статье https://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]
      Ответить
      • Surcho (16 комм.)

        Премного благодарен!

        Ответить
  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]
      Ответить
      • Сергей (3 комм.)

        К сожалению не работает (((

        Ответить
        • АлаичЪ

          Я допустил нелепый косяк в коде =) Обновил комментарий, попробуй еще раз.

          Ответить
  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 комм.)

        блин плохо быть по пояс деревянным))) не думал что есть разница — в конец файла перенес, все заработало. Спасибо за подсказку. А за тему отдельное спасибо!

        Ответить
        • АлаичЪ

          Плохо быть не деревянным, плохо не следовать инструкциям, ведь я их не с потолка беру :)

          Ответить