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

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

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

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

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


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

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


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

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

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

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

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

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

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


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

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

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

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

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

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

НАХОДИМ:

RewriteEngine On

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

НАХОДИМ:

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

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

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

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

НАХОДИМ:

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

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

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

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

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


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

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

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

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

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

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

НАХОДИМ:

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

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

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

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

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


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

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

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

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

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

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

НАХОДИМ:

		} else {
 
			$full_link = $config['http_home_url'] . "index.php?newsid=" . $row['id'];
			$print_link = $config['http_home_url'] . "engine/print.php?newsid=" . $row['id'];
			$short_link = "";
 
		}

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

//обработка неправильного alt-name и 301 редирект
			$true_link = $config['http_home_url'] . substr ($_SERVER['REQUEST_URI'], 1);
 
				if ($row['allow_comm']) { //если разрешены комменты
					$conf_comm_by_page = intval( $config['comm_nummers'] ); // комм на стр из настроек
					$news_comm_num = $row['comm_num']; // общее кол-во комм
					$comm_page_count = @ceil( $news_comm_num / $conf_comm_by_page );
						if ( ($comm_page_count >= 2) && (intval($_REQUEST['cstart']) >= 2) ) $full_link = $link_page . intval($_REQUEST['cstart']) . "," . $news_name . ".html";
				}
				if ($news_page >= 2) $full_link = $link_page . $news_name . ".html";
 
			if ($true_link != $full_link) {
				header('HTTP/1.1 301 Moved Permanently');
				header ('Location: ' . $full_link);
				die();
			}
//обработка неправильного alt-name и 301 редирект

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

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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заменяем на:

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

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

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

Заменяем на:

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

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

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

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

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

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

					$prev_page = $url_page . "/";

Заменяем на:

					$prev_page = $url_page . "";

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

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

Заменяем на:

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

Находим:

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

Заменяем:

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

Находим:

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

Заменяем:

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

Находим:

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

Заменяем:

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

Находим:

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

Заменяем:

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

Находим:

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

Заменяем:

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

Находим:

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

Заменяем:

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

Находим:

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

Заменяем:

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

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

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

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

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

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

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

Заменяем на:

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

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

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

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

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

Находим:

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

Заменяем:

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

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

Находим:

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

Заменяем:

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

Находим:

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

Заменяем:

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

Находим:

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

Заменяем:

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

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

Находим:

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

Заменяем:

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

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

Находим:

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

Заменяем:

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

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

Находим:

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

Заменяем:

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

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

Находим:

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

Заменяем:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    User-agent: *
     
    Disallow: /page/
    Disallow: /lastnews/
    Ответить
    • АлаичЪ

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

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

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

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

        /page/1/

        /page/2/

        /page/.../

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

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

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

          Напишите

          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" ситуация не очень хорошая. Вот одни из подобных страниц:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      Ответить
      • timur (6 комм.)

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

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

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

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

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

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

        Кстати? DLE 9.4

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

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

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

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

          Ответить
          • timur (6 комм.)

            спасибо!!!

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

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

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

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

              Ответить
              • timur (6 комм.)

                Примеры:

                /2011/08/26/

                /2011/08/27/

                /2011/08/29/

                Вот ещё:

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

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

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

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

                И ещё:

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

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

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

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

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

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

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

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

                  Ответить
  30. Tim (2 комм.)

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

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

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

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

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

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

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

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

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

          Ответить
  31. ssaid (2 комм.)

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

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

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

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

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

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

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

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

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

      Ответить
  32. MIRREXX (13 комм.)

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

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

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

    Ответить
    • MIRREXX (13 комм.)

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

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

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

      заменяем на:

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

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

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

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

        Ответить
        • MIRREXX (13 комм.)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

          Disallow: /main

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                  Ответить
  61. AnK (1 комм.)

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

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

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

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

      Ответить
  62. Иван (7 комм.)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

          $true_link = $config['http_home_url'] . substr ($_SERVER['REQUEST_URI'], 1);
           
          			if (intval($_REQUEST['cstart']) >= 2) {
          				$comments_link = $link_page . intval($_REQUEST['cstart']) . "," . $row['alt_name'] . ".html";
          			}
           
          			if (($true_link == $full_link) and ($true_link == $comments_link)) {
          			} else {
          				header('HTTP/1.1 301 Moved Permanently');
          				header ('Location: ' . $full_link);
          				die();
          			}
          Ответить
          • Snake2010 (11 комм.)

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

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

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

              Ответить
  64. Владимир (18 комм.)

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

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

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

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

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

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

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

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

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

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

      Ответить
      • Владимир (18 комм.)

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

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

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

          Идей нет, напишите хостеру и спросите у них, может помогут.

          Ответить
  65. Михаил (12 комм.)

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

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

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

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

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

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

      Ответить
      • Михаил (12 комм.)

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

        Ответить
        • Михаил (12 комм.)

          разобрался

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

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

          Заменяем на:

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

          Теперь всё ОК.

          Ответить
  66. Кррава (1 комм.)

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

    Применил, спасибо!

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

    Всех приветствую.

    Уважаемый мастер АлаичЪ, прошу помощи сделать редирект с ссылок типа site.ru/http:/?newsid=id (id новости) на обычные ссылки типа site.ru/categori/id-сама статья.html

    Такие ссылки создаются модулем отправки ссылок новых статей в twitter.com, там они (site.ru/http:/?newsid=id) так и выглядят, а это будет дублированием контента в глазах ботов увидившие такие ссылки. Спасибо за Ваш труд.

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

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

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

        В предыдущем сообщении ошибка урлы вида не site.ru/http:/?newsid=id ,а site.ru/?newsid=id (без http)

        В твиттере ссылки такие http://pro-dlar.ru/?newsid=87 и перейдя по этой ссылке новость на сайте отображается именно под этой ссылкой,но настаящая ссылка имеет такой вид http://pro-dlar.ru/multimedia/87-aiseesoft-blu-ray-converter-ultimate-v-6236.html

        Вот и нужен редирект.

        Ответить
  68. Антон (10 комм.)

    АлаичЪ, очень полезная статья, но я наверно что то упустил. Подскажи:

    1. Что делать со слешами в дле 9.5? Обработка неверных урл включена, некоторые дубли страниц ушли, но не все. Новости открываются по адресу .../novost.html и .../novost.html/ Как с этим бороться? Или это не существенно?

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

    3. И опять про анонсы. У меня одинаковые короткие новости встречаются: на главной, в категории, в подкатегории. То есть одинаковый текст встречается по разным адресам. Стоит ли об этом голову греть?

    Очень надеюсь на твой ответ!

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

      1. А откуда они такие появились новости с .html/ на конце? Сами слеш подставляли или поисковик такие адреса где-то нашел?

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

      3. Неприятно, конечно, но ничего не поделать с этим. Вы ведь не спроста выводите текст анонса, верно? Можно убрать его, оставив только заголовки, но будет ли это удобно и понятно посетителям, вот в чем вопрос!

      Ответить
      • Антон (10 комм.)

        1. Это я сам слеш подставил, проверить как откроется такая страница :)

        Спасибо за ответы!

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

          Ну если сам подставил, то не стоит волноваться, поисковик их сам не подставит :)

          Ответить
  69. Владимир (1 комм.)

    Ещё я заметил во всех версиях DLE дубликат по адресу site.ru/page/. Как исправить?

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

      Смотрите этот пункт — «Склеиваем адреса страниц /page/1/ с основными адресами (главной страницы или категории)» и выполните правки для .htaccess

      Ответить
  70. Диана (3 комм.)

    Здравствуйте ! Я Вам очень благодарна — закрыла и перенаправила где надо. Но у меня появилась одна беда сайт в бирже ссылок виден стал как ещё по адресу site.ru/?file=4589 Закрыла в robots.txt — адуриловка писала запрещён к индексации, А сегодня пишет проиндексирован и у него ещё возможны варианты — site.ru/?file=4589/page/1/ Хотя это «Склеиваем адреса страниц /page/1/ с основными адресами (главной страницы или категории)» — у меня благодаря вашей статье стоит и с другими страничками прекрасно работает... Даже не знаю что и делать, может подскажите...Буду очень благодарна Вам

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

      Добавьте в robots.txt строчку:

      Disallow: /*?file

      И все будет окей.

      Ответить
      • Диана (3 комм.)

        Спасибо за ответ, прописала в robots.txt, но вводя в аддуриловку -> site.ru/?file=4589 Пишется:

        <<Указанный URL уже проиндексирован.>>

        Может надо прописать <link rel="canonical" href="http://site.ru/> — как думаю это в main.tpl пишется, но именно где не знаю.

        Подскажите, пожалуйста, как быть в таком случае

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

          Ага, я немного не то правило указал, не так понял url.

          Пропишите под добавленной строчкой еще такую:

          Disallow: /?file

          Ответить
          • Диана (3 комм.)

            Ой уже не знаю и так сделала, пишется — <<Указанный URL уже проиндексирован.>> Главное если я подставляю другие цифры то пишется — <<запрещён к индексации>> Но как только -> site.ru/?file=4589 Снова проиндексирован и никакого запрета ... Может у них так как в кеше... Странно всё это . Заму чала Вас тоже ))

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

              Пропишите директивы и подождите недельку-две. А заодно можно еще проверить в панели вебмастера Гугла, может он что скажет.

              Ответить
  71. Дима (12 комм.)

    У некоторых сайтов подключены дополнительные модули. У меня список авторов — members. В роботе запись Disallow: /index.php?do=members. Гугл все возможные варианты сортировки авторов включил в поиск и с одинаковым титлом сотня страниц. Вот пример site.ru?do=members&orderby=cpublicA&count=30, site.ru?do=members&orderby=nameD&count=150, итд

    Можно ли это исправить? Как это прячется от поисковиков?

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

      Разумеется он включит в поиск эти страницы.

      В роботсе закрыты страницы начинающиеся с /index.php?do=members

      А в поиске ?do=members&orderby=

      На что вы рассчитывали в таком случае? =)

      Ответить
  72. Дима (12 комм.)

    Закрыл строчкой $do == 'members' OR в engine.php, появился <meta name="robots" content="noindex,nofollow" />

    Disallow: /index.php?do=members убрал. Правильно?

    У кого опыт есть, как скоро из гугла странички таким образом пропадают?

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

      Да, правильно. Пропадут в течение месяца или даже быстрее.

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

    Уважаемый АлаичЪ, после переезда аккаунта с одного ip на другой, на сайте перестали показываться картинки. Движок DLE 9.2

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

    Если удаляю данные записи, то начинают работать. Но перестают осуществляться переходы на полную новость, а выходит ошибочная страница!

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

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

      Так, по порядку:

      1. Используемый тип ЧПУ?

      2. Пример url'а на картинку

      3. Ну, и адрес сайта в студию...

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

        Итак по парядку:

        — ЧПУ тип 2

        — Пример url картинок:

        http://www.omidesign.ru/uploads/posts/2012-05/507nawicvn.jpg

        ну и адрес перед uploads/posts/2012-05/507nawicvn.jpg

        Если ставлю ЧПУ тип 1 и убираю надписи скопированные выше, то картинки появляются, а если ЧПУ 2 и всё оставляю, то картинки исчезают! Хотя раньше всё работало как часики.

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

          А попробуйте после строки:

          # Сам пост

          Добавить эти:

          RewriteBase /
          RewriteCond %{REQUEST_FILENAME} !-f
          RewriteCond %{REQUEST_FILENAME} !-d
          Ответить
          • Василий (6 комм.)

            Попробовал — не помогло :(

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

            Удаляю — картинки начинают пахать, но полной новости нет, перекидывает на главную!

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

              Я так понимаю, что проблема в чпу 2, так как с чпу 1 и картинка пашет и переход на полную новость осуществляется нормально.

              Жду помощи, уважаемые знатоки своего дела!

              Скажите, что ещё можно сделать?

              Может попробовать обновить движок до 9.6? Или не поможет?

              Ещё я заметил, что при нажатии на картинке — открыть ссылку в новом окне — меня перебрасывает на ссылку картинки и сразу на главную, ну а картинка так и не пашет.

              Редирект какой-то.

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

                А попробуйте заменить это:

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

                На это:

                RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*)$ index.php?newsid=$4&news_page=$2&cstart=$3 [L]
                RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)-(.*)$ index.php?newsid=$3&news_page=$2 [L]
                RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+)-(.*)$ engine/print.php?news_page=$2&newsid=$3 [L]
                RewriteCond %{REQUEST_FILENAME} !-f
                RewriteCond %{REQUEST_FILENAME} !-d
                RewriteRule ^([^.]+)/([0-9]+)-(.*)$ index.php?newsid=$2 [L]

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

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

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

      Вам в помощь — http://alaev.info/blog/post/3294 — "Редирект с несуществующих страниц пагинации на правильные и существующие"

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

        По той инструкции редирект начинает работать с http://site.ru/page/29/. В настройках указан вывод по 10 новостей, всего на сайте 280. Отсюда делаю вывод что данный параметр где-то отмечен. Но как же решить данную проблему не в ущерб категориям?

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

          Не понял идеи. Разумеется, если на сайте 280 новостей, по 10 на каждой странице, то как минимум 28 страниц должно существовать. А 29-ой(и всех последующих) уже не существует, следовательно с них и делаем редирект.

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

            суть в том, что на главной вообще нет навигации и все адреса типа http://site.ru/page/n/ ведут на одну и ту же страницу-главную. В категориях же есть навигация. В таком варианте возможно что-то сделать?

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

              Могу предложить вот такой вариант, должно сработать.

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

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

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

              // 301 редирект на главную с адресов страниц пагинации
              			if ( ( $config['allow_alt_url'] == "yes" ) && (strpos($_SERVER['REQUEST_URI'], 'page/') !== false) && ($dle_module == "main") ) {
               					header("HTTP/1.0 301 Moved Permanently");
              					header("Location: {$config['http_home_url']}");
              					die("Redirect");
              			}
              // 301 редирект на главную с адресов страниц пагинации
              Ответить
  82. Денис (4 комм.)

    Добрый день! А подскажите как сделать редирект со страницы index.html на главную?

    Ответить
  83. poetry (12 комм.)

    Появился у адреса хвостик в виде: ?subaction=userinfo&user=admin

    Не знал как на странице userinfo в title вместо admin > название сайта вывести полное имя, изменил логин на кирилицу, сделал такой редирект.

    Redirect 301 /user/admin/ http://site.ru/user/%D1%E2%E5%F2%EB%E0%ED%E0+%D1%EA%EE%F0%E8%EA/

    Получаю на выходе http://site.ru/user/%D1%E2%E5%F2%EB%E0%ED%E0+%D1%EA%EE%F0%E8%EA/?subaction=userinfo&user=admin

    чпу 1 дле 9,6 рекомендации по устранению дублей выполнил. Так появятся новые? Кто-то обещал свою версию робота для дле показать.

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

      Хвостик появился потому, что перед строкой редиректа:

      Redirect 301 /user/admin/ http://site.ru/user/%D1%E2%E5%F2%EB%E0%ED%E0+%D1%EA%EE%F0%E8%EA/

      Надо добавить важную строку:

      RewriteBase /

      После этого все будет работать как надо.

      Ответить
  84. Валентин (4 комм.)

    Устраняем неразбериху с категориями их вложенностью и слешем / на конце («Обрабатывать неверные URL ЧПУ»)

    Добрый день. Не могли бы вы чуточку дополнить данный хак. Во всех случаях он отрабатывает корректно, за исключением одного — когда URL начинается на /page/ не ваш хак, не встроенный в 9.6 не обрабатывает данную ссылку, а просто открывает главную с номеров навигационной страницы (пагинации) — (если он указан после page, иначе просто главная).

    Пример: http://www.site.ru/page/18/категория_авто/подкатегория_хонда/категория_велосипед/категория_мото/

    В браузере будет отображена информация со страницы (http://www.site.ru/page/18/) — а в адресной строке останется тот же перемешанный адрес.

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

    PPS Живой пример http://dle-news.ru/page/10/extras/uroki/pressrelease/DAZHE_NE_SUWESTVUJUWIJ_RAZDEL/

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

      Я подумаю над этим, а пока что идей нет, как справиться с этой ерундой.

      Ответить
  85. Денис (4 комм.)

    АлаичЪ, подскажите, пожалуйста, почему при изменении страницы engine.php (для того, чтобы убрать дубль page/1) вставляю

    ///

    if ( ($config['allow_alt_url'] == "yes") && (intval ($_GET['cstart']) == 1) && (strpos ($_SERVER['REQUEST_URI'], '/page/1') !== false) ) {

    $first_page_url = str_replace ( "/page/1", "", $_SERVER['REQUEST_URI'] );

    header ("HTTP/1.0 301 Moved Permanently");

    header ("Location: $first_page_url");

    die ("Redirect");

    }

    ///

    и получаю пустую страницу с надписью Redirect.

    Если удалить строку die ("Redirect"); то открывается страница site.ru/page/1

    Может что-то не так делаю?!

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

      Значит где-то противоречие возникает. Надо в браузере FireFox установить плагин HttpFox. В плагине нажать на Start и перейти по адресу с /page/1, и будет видна цепочка переадресаций. Сразу станет понятно, куда происходит редирект и почему он получается циклическим (ведь причина отображения Redirect именно в этом).

      Ответить
      • Михаил (2 комм.)

        У меня с при редиректе с http://site.ru/page/1 перенаправляло на "Redirect".

        Решение: в .htaccess после

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

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

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

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

        ДОБАВИТЬ

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

        Ответить
        • Михаил (2 комм.)

          извиняюсь, этот способ не рабочий, у меня кеш глюканул(

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

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

          Ответить
      • Денис (4 комм.)

        АлаичЪ, установил этот плагин, но дело в том, что в мозиле вообще никуда не переадресовывает... проверил в хроме и в опере ситуация такая. как описал выше. Что-то я не пойму?!

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

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

          Ответить
  86. LERR (6 комм.)

    Еще для этого нужно редирект сделать

    http://site.ru/index.php?do=cat&category=subcat -> http://site.ru/cat/subcat/

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

    Добрый день! А как исключить такой вид

    сайт/категория/новость

    сайт/новость

    ЧПУ тип 2 двиг 9.2

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

      А вы правки описанные в посте проделали?

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

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

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

          А сами эти страницы, которые надо "убить" сайтом отрабатываются нормально, то есть редирект на правильные страницы идет? Если да, то надо ждать пару недель, чтобы в панели вебмастера начали уменьшаться ошибки.

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

            нет, страницы открываются и так и так без редиректа

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

            Еще раз проверил все правки, именно эту я не добавил. Теперь редирект проходит нормально. Большое спасибо!!!!

            Ответить
  88. Atway (8 комм.)

    После добавления

    [code]### Редиректы с site.ru/category/index.php на site.ru/category/ и др.

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteCond %{REQUEST_URI} (.*) index\.php$

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

    ### Редиректы с index.php на сайт

    RewriteBase /

    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/

    RewriteRule ^index\.php$ / [R=301,L]

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule . /index.php [L][/code]

    начинается черт-пойми-что:

    -новости не открываются — редирект на главную

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

    Версия 9.6

    Ответить
    • Atway (8 комм.)

      даже точнее нашлась проблема:

      "### Редиректы с index.php на сайт" — после этого куска

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

        Значит что-то не так сделали. У меня ведь (да и не только у меня) все работает замечательно.

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

    Вопрос про:"Склеиваем адреса страниц /page/1/ "

    Если пишем www.**.ru/page/1/ — редиректит отлично, а если писать www.**.ru/page/1 — без слеша замирает на пустой странице и в левом верхнем углу просто написано Redirect. Ошибся я или ?

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

      Попробуйте вместо:

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

      Сделать так:

      ### START Редирект с первой страницы на основную
      RewriteRule ^(.*)/page/1/$ $1/ [R=301,L]
      RewriteRule ^(.*)page/1/$ $1/ [R=301,L]
      RewriteRule ^(.*)/page/1$ $1 [R=301,L]
      RewriteRule ^(.*)page/1$ $1 [R=301,L]
      ### END Редирект с первой страницы на основную
      Ответить
      • 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

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

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

      Все здесь — http://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/

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

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

      Можно так попробовать — http://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. Тарас (3 комм.)

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

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

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

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

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

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

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

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

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

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

      Ответить
  112. joynik (12 комм.)

    DLE 9.7, после вставки кода:

    ### Редиректы с index.php на сайт

    RewriteBase /

    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/

    RewriteRule ^index\.php$ / [R=301,L]

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule . /index.php [L]

    При переходе по несуществующей картинке происходит отображение главной страницы сайта а не 404 — http://uakino.com/uploads/posts/2012-07/uakino.com_13432512381.jpg

    Такая же проблема была и на DLE 9.6

    Ответить
  113. joynik (12 комм.)

    после добавления вот этих строк

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

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

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

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

    все работает, но возможно ли добавить исключение в редирект для страницы http://uakino.com/page/1/ чтобы он не переходил на http://uakino.com/

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

      Для этого надо убрать строку 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,

        т.е. рекомендуете чисто обновиться как описано в статье http://alaev.info/blog/post/3970 и поставить допом все 4 части по seo-оптимизации DLE?

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

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

          Ответить
  117. belov (8 комм.)

    Здравствуйте подскажите как сделать редикт со страниц категории типа http://сайт/категория/, http://сайт/категория/page/2/ и так далее на главную чтобы при создании очередной страницы типа http://сайт/категория/page/3/ или http://сайт/категория/ происходил редикт автоматически на главную

    Ответить
  118. pashavanholt (4 комм.)

    Здравствуйте много уважаемый АлаичЪ

    когда актуализируете часть 2 для dle 9.7 спасибо

    Ответить
  119. Михаил (20 комм.)

    Здравствуйте, помогите пожалуйста, дело в том что у меня на сайте когда нажимаешь с главной страницы на другие категории, то все переходит нормально, а когда нажимаешь с главной страницы например на 2 страницу, то есть например site.ru/page/2/, а потом пытаешься перейти например в категорию животных, адрес меняется то есть site.ru/page/2/zhivotnye, но переход не осуществляется. Помогите пожалуйста решить данную проблему.

    Обрабатывать неверные URL ЧПУ включено, но не помогает.

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

      Это ошибка в шаблоне. Используйте абсолютные ссылки, а не относительные. Прописывайте в шаблоне ссылки сразу как http://site.ru/...

      Ответить
      • Михаил (20 комм.)

        Огромнейшее вам спасибо, как всегда выручаете, сделал как вы сказали и все заработало.

        Ответить
  120. Михаил (20 комм.)

    Здравствуйте уважаемый АлаичЪ, возник тут у меня вопрос. Существует мнение что плотность ключевых слов на странице должна быть 5-7 %, так вот вопрос в следующем, это плотность имеется ввиду только в тексте страницы, или берутся все вхождения страницы включая title, keywords, description ?

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

      Много мнения всяких существует. А на счет плотности — все это чушь, пишите текст не привязываясь к каким-то цифрам, которые ничего не значат.

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

      Ответить
  121. Surcho (16 комм.)

    АлаичЪ! Появились вот такие страницы: http://site.ru/http:/site.ru/category/novosti/

    Это дубль главной страницы. Что можно сделать? Отчего может быть такая страница? DLE 9.7

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

      У меня такие же косяки есть на одном из сайтов, сам не знаю откуда это дело появилось. Но решаю это таким образом. После RewriteEngine On добавляем:

      RewriteBase /
      RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ \/http(.*)\ HTTP/
      RewriteRule ^http(.*)$ / [R=301,L]
      Ответить
  122. Михаил (20 комм.)

    Здравствуйте АлаичЪ, помогите пожалуйста, дело в том что я хочу сделать небольшое описание с ключевыми словами у себя на главной странице. Когда я в main.tpl прописываю небольшое описание то выглядит это так, вот картинка что бы было наглядно видно http://videosmeh.ru/image1.jpg. Но мне нужно написать описание побольше, но стоит мне написать побольше текста то это выглядит так http://videosmeh.ru/image2.jpg . Как вы видите текст вылазит за серую рамку шаблона, так вот, вопрос такой, как сделать что бы эта серая рамка растягивалась, то есть что бы было так, чем больше текста тем больше серая рамка.

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

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

      Ответить
      • Михаил (20 комм.)

        Извините, но вы не правы я уже все сделал, и это изображение я изменил размеры в фотошопе залил их на сервер и в css поменял размеры.

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

    Здравствуйте! Есть сайт site.ru с форумом site.ru/forum. Форум LogicBoard 2.2 работает хорошо, но после того, как я в файл .htaccess добавляю вот это:

    RewriteBase /

    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/

    RewriteRule ^index\.php$ / [R=301,L]

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule . /index.php [L]

    То нажимая на любую ссылку в форуме сразу же идет перенаправление на site.ru. Что можно сделать в сложившейся ситуации?

    Заранее благодарю Вас за помощь! С уважением Сергей.

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

      Можно вот такой вот код попробовать:

      RewriteBase /
      RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
      RewriteRule ^index\.php$ / [R=301,L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_URI} !^/forum/?$
      RewriteRule . /index.php [L]
      Ответить
      • Сергей (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 комм.)

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

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

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

          Ответить
  127. Михаил (20 комм.)

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

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

      Не знаю, проверьте код ответа сервера для этих страниц. Плагин для FireFox — HttpFox, как работает разберетесь быстро.

      Ответить
  128. san85ua (1 комм.)

    Ув. АлаичЪ, подскажите: оптимизирую новый сайт на денвере. версия 9.7. Делаю правки: "Дублирование страниц категорий по адресам без слеша и со слешем на конце"...

    Добавляю в engine.php код:

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

    if ( $config['allow_alt_url'] == "yes" AND $category_id AND $view_template != "rss") {

    $re_cat = get_url ( $category_id );

    if ($re_cat != $_GET['category'] OR substr ( $_SERVER['REQUEST_URI'], — 1, 1 ) != '/' ) {

    $re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );

    $re_url = reset ( $re_url );

    header ("HTTP/1.0 301 Moved Permanently");

    header ("Location: {$re_url}{$re_cat}/");

    die ("Redirect");

    }

    }

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

    Не действует... т.е. сохраняя engine.php, я пробую ввести урл типа "site.ru/category", после чего редирект на "site.ru/category/" не происходит, а остается как "site.ru/category" :(

    в файле .htaccess пробую

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

    RewriteBase /

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteCond %{REQUEST_URI} !-f

    RewriteCond %{REQUEST_URI} !/$

    RewriteCond %{REQUEST_URI} !.html$

    RewriteCond %{REQUEST_URI} !.xml$

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

    Картина та же... Это что? в 9.7. не работает ни один из способа истребления урл"ов без слеша?

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

      Ну в общем-то в посте и не написано, что данные методы совместимы с 9.7, надо быть внимательнее немного :)

      Ответить
  129. Пушкин (2 комм.)

    Добрый день, а скажите пожалуйста, как закрыть вашем методом вот такие ссылки:( категория/page/1/ и т.д.) у меня на сайте 27 категорий и в индекси очень много site.ru/категория/page/1/!!! робот.тхт не помогает.

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

      Эти страницы надо убивать, а не закрывать. Читаем вторую часть руководства.

      Ответить
  130. Alex (45 комм.)

    Обычно скептически настроен к руководствам по ДЛЕ, опубликованным на вордпрессном блоге. Но тут же просто фантастика! Такой труд, все так по полочкам — почему мне это раньше не попалось? :) Спасибо, Александр.

    А теперь вопрос (если еще есть силы на меня — 444 коммента не шутка):

    Вследствие специфичности сайта (таблицы с ценами, фиг обрежешь), в кратких тот же контент, что и в полных.

    В итоге получается, что у меня 1 контент на 5 страницах: на site.ru, site.ru/page/2 и т .д., а также на site.ru/category и site.ru/category/subcategory и на собственно полной новости.

    Закрывать от индексации страницы всех категорий не хотелось бы — они неплохо ранжируются и привлекают трафик.

    Что можно сделать? Ломаю голову уже пару месяцев. В поле URL этот сайт.

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

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

      Disallow: /page/

      Disallow: /*/page/

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

        Спасибо, так и сделал. Насчет остального: решил избавиться от site.ru/category/subcategory/, удалив subcategory, а запрос, по которому она шла в выдаче, передать полной новости site.ru/category/subcategory/news.html

        Удалил subcategory, теперь редиректится на главную (после описанных Вами правок по несуществующим категориям), но ведь наверно лучше сделать редирект с subcategory на /subcategory/news.html? Подскажите, как прописать редирект (и нужен ли он) с удаленной подкатегории на новость в ней с учетом того, что у меня сейчас настроены редиректы на главную.

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

          Редирект можно сделать так:

          Redirect 301 /category/subcategory/ http://site.ru/category/subcategory/news.html

          А надо это или нет — сами решайте.

          Ответить
          • Alex (45 комм.)

            Сделал (до переиндексации пусть висит), спасибо, как вас отблагодарить? Может кнопочку какую сделайте.

            Серия по ДЛЕ просто открыла мне глаза, все сделал, радуюсь красоте внутренней оптимизации :)

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

              Да ладно, какая кнопочка, это в прошлом :) Можно просто ссылку поставить (сквозную или одну единственную где-то, это на ваше усмотрение; анкор любой, это не принципиально), мне будет приятно.

              Ответить
  131. Евгений (2 комм.)

    Подскажите, пожалуйста, актуально ли для версии 9.7?

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

      В общем-то везде есть пометки что для чего подходит.

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

    Подскажите как избавится от таких ссылок

    site.ru/softsoft/1...

    site.ru/softsoft/2...

    site.ru/не существующая котегория/любое число, затем одна или несколько точек. Движёк 9.5

    Вот у вас на 404 страницу перекидывает http://alaev.info/blogblog/12... а у меня на главную, помогите решить проблему.

    Ответить
  133. Михаил (20 комм.)

    Вопрос 1) Здравствуйте АлаичЪ, подскажите нужно ли закрывать страницы page в robots.txt ?

    Например так

    Disallow: /page/

    Disallow: */page/*

    Вопрос 2) Если закрываешь пропадает реклама google adsense, как быть ?

    Вопрос 3) Если не закрываешь появляется реклама на всех страницах, но при этом в поисковиках по запросам ухожу вниз, как быть ?

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

      Откройте страницы для робота Google Adsense.

      В роботс.тхт пропишите следующие строчки:

      User-agent: Mediapartners-Google

      Allow: /

      Эта строчка только для робота Google Adsense, для других можно закрывать все, что не нужно.

      Ответить
      • Михаил (20 комм.)

        А сам гугл пишет

        User-agent: Mediapartners-Google

        Disallow:

        А у вас

        User-agent: Mediapartners-Google

        Allow: /

        Цитирую фразы самого гугла:

        Как разрешить роботу индексировать мой сайт?

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

        User-agent: Mediapartners-Google

        Disallow:

        Это изменение позволит нашему поисковому роботу индексировать содержание вашего сайта и обеспечивать показ релевантных объявлений Google.

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

          в принципе одно и тоже. Раньше на закрытых страницах рекламы от google adsense не было. Потом они сами прислали сообщение о том, что страницы нужно открыть для поискового бота и теперь на всех страницах присутствует реклама.

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

            Сами решайте закрывать или нет страницы пагинации.

            Правильные советы Дан дает, да и вы сами нашли уже в справке что и как делать.

            Ответить
  134. Alexander (1 комм.)

    Помогите сделать редирект в nginx (версия 1.2.2)

    с http://site.ru/index.php?do=register

    на http://site2.ru/index.php?do=register

    Ответить
  135. Vlad (3 комм.)

    Помогите пожалуйста с проблемой. При изменении фала .htaccess ложиться. Но все делал точно по инструкции. Любое изменение этого файла его ложит. Кодировка правильная UTF-8. Версия 9.7 В чем может быть проблема???

    Ошибка

    Internal Server Error

    The server encountered an internal error or misconfiguration and was unable to complete your request.

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

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

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

      Ответить
  136. Даниил (2 комм.)

    Добрый день! Появляется ошибка при выполнении пункта:

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

    На разных сайтах (dle 8.5, 9.7) на разных хостингах одна и та же проблема.

    При переходе domen.net/cat/page/2/ на page/1/ страница переходит по адресу с ошибкой 404

    domen.net/home/site/domains/domen.net/public_html/cat/

    Ответить
    • Даниил (2 комм.)

      Почитал комментарии, заработал данный вариант:

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

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

      Ответить
  137. Ирина (3 комм.)

    Здравствуйте ув. АлаичЪ, помогите пожалуйста вот с такой проблемой http://сайт.ру/&sa=U&ei=fhwsT7H9H4bxsgaKvpXkDA&ved=0CC4QFjAG&usg=AFQjCNEQvoIVxqPUFCNzM6vqA04qys-nEA/

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

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

      Например запретить его в robots.txt так:

      Disallow: /&

      Disallow: /*&

      Ответить
  138. Вдадимир (17 комм.)

    Делал все правки доступные для своей версии движка (9.6) и сегодня обнаружил дубли главной страницы по адресам:

    site.ru/home.htm

    site.ru/home.php

    site.ru/index.asp

    site.ru/index.htm

    Как их грамотнее заредиректить?

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

      Добавить в .htaccess строчки:

      Redirect 301 /home.htm http://site.ru/

      Redirect 301 /home.php http://site.ru/

      Redirect 301 /index.asp http://site.ru/

      Redirect 301 /index.htm http://site.ru/

      Ответить
  139. Виктор (3 комм.)

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

    Для какой версии актуально: Версии DLE 8.2-9.2. Для DLE 9.3 и выше необходимо в настройках движка активировать опцию «Обрабатывать неверные URL ЧПУ»."

    Подскажите пожалуйста)Нужно просто активировать опцию или активировать и произвести изменения?

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

      Только активировать опцию. Правок не надо вносить, а то все сломается.

      Ответить
  140. влад (5 комм.)

    Еще желательно дописать:

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

    Иначе при переходе /page/1 без слеша редирект не происходит на главную.

    Можно и так сделать:

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

    Этот вариант более правильный, на странице пагинации /page/5 без слеша кидает на /page/5/ со слешем.

    Тем самым решаем сразу две проблемы — со слешем и с редиректом.

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

      Проверил, действительно редиректа нет, если без слеша. Ждем авторитетное подтверждение правок :)

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

        Да, можно это применять, ничего страшного не случится.

        Но вообще-то как раз проблему со страницами без слеша должна решать правка php. Описанный выше вариант — альтернатива, но тоже рабочая.

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

          Пробовал делать правки влада, не помогли — все равно страница http://site.ru/page/1 показывает белый экран и слово Redirect. В какую часть файла .htaccess их надо вставлять?

          Так а как решать проблему со страницами без слеша правкой php в DLE 9.5?

          В статье у вас пометка, что актуально только для DLE 8.2-9.2.

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

            Если выдается Redirect, значит убери php-правки для этого случая.

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

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

              Убрал php-правки, и теперь, естественно, http://site.ru/page/1 и http://site.ru/page/1/ существуют и никуда не редиректят. Благо, закрыты от индексации.

              Проблема со слешем в ДЛЕ решается в категориях, но не решается на страницах пагинации. Во всяком случае. так у меня получается.

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

                На раз убрал php-правки, внедри те, что предложил влад чуть выше, все будет работать :)

                Ответить
  141. Максим (4 комм.)

    Приветствую, АлаичЪ!

    После того как поправил всё до пункта: "Убираем слеш в конце url — редирект со страницы со слешем в конце на страницу без слеша" у меня перестали открываться статичные страницы.

    На статике у меня карта сайта HTML, при переходе на неё открывается главная страница, с остальными тоже самое. DLE 9.7.

    Подскажи, где копать?

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

      В этом посте для DLE 9.7 подходят только первые три пункта, о чем и сказано в посте. Рекомендую сделать откат всех изменений и впредь более внимательно смотреть на соответствие версий.

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

    НАХОДИМ:

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

    в htaccess нет такой строки. DLE 9.7

    Ответить
    • Максим (4 комм.)

      Это появляется когда сделаешь пункт: "Склейка зеркал — выбираем главное зеркало www.site.ru или site.ru"

      ### START Определяем главное зеркало как site.ru (site.ru заменить на свой домен, например alaev.info)

      RewriteCond %{HTTP_HOST} ^www\.site\.ru$ [NC]

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

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

      Если конечно копируешь с пояснениями.

      Ответить
  143. remont63 (12 комм.)

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

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

    1) http://www.site.ru/category/pod/ — основной раздел

    http://www.site.ru/www/scategory/pod/ — дубль.

    2) http://www.site.ru/category1/

    http://www.site.ru/index.php?do=cat&category=category/

    3) можно ли устранить дубли подобного типа:

    /?cstart=46

    /page/46/

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

      В ближайшее время опубликую пост про редиректы в DLE. Наберитесь терпения!

      Ответить
  144. Min-Z-Drav (7 комм.)

    как решить данный дубыль http://site.ru/page/19/advertising.html http://site.ru/page/19/

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

      Скоро будет пост про редиректы, ждите!

      Ответить
  145. Kim (6 комм.)

    RewriteCond %{HTTP_HOST} ^www\.site\.ru$ [NC]

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

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

    Но стОит выбрать основным зеркалом сайт с www, прописав соответствующий код — поиск функционирует в полной мере...

    Сейчас ещё обнаружил проблему при регистрации, после получения ссылки на почту (для активации аккаунта) переходим по ней и жмём "Продолжить регистрацию на сайте" — получаем ID not valid!

    DLE 9.7 (лицензия) никаких доп. модулей и хаков на сайте нет, код валиден (все страницы)

    Ответить
    • remont63 (12 комм.)

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

      Либо смотреть в сторону модуля register, тот что в папке engine/modules/

      Или попробуйте отключить в настройках безопасности скрипта: Включить автоматическое блокирование спам программ — поставьте"нет"

      Хотя обычно такие ошибки при добавлении новостей появляются, либо с отправкой персональных сообщений, а тут с регистрацией.

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

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

        Так-то вообще редирект никак не влияет на работу сайта, за все мои 7 лет никогда подобных проблем не возникало.

        Ответить
        • Kim (6 комм.)

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

          Ответить
  146. NeedLe (21 комм.)

    Нашел вот еще какую страницу с повторяющимся тайтлом главной страницы, она высветилась в вебмастере гугла

    http://site.ru/index.php?act=category&do=newscore

    Как быть с редиректом здесь?

    Ответить
  147. Ванчик (41 комм.)

    Открыл категории к индексации, вылез дубль главной /?cat=1. Как можно сделать редирект в htaccess?

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

      После RewriteEngine On надо добавить:

      RewriteBase /
      RewriteCond %{QUERY_STRING} ^cat=
      RewriteRule (.*) $1? [R=301,L]
      Ответить
      • Ванчик (41 комм.)

        Просто огромнейшее спасибо!!! Кстати, со вчера жду ответа в ICQ.

        Ответить
      • Ванчик (41 комм.)

        АлаичЪ, вылез ещё один главной /?qwerty123456 — рассчитываю на помощь. Вообще странно как дле их любит плодить!

        Ответить
        • Ванчик (41 комм.)

          Да как же сделать редирект с этого ?qwerty123456?!

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

            Выше же написано все. Ни ужели так сложно в коде заменить «^cat=» на «^qwerty123456»?

            Ответить
  148. Иван (1 комм.)

    Доброго времени. Как можно решить проблему попадания вот таких страниц в "HTTP-статус: Ресурс не найден (404)" Яндекса?:

    /anime/detskie/komedii/komedii/komedii/koncerti/detskie/

    Спасибо за ответ.

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

      В общем-то пункт "Устраняем неразбериху с категориями их вложенностью и слешем / на конце" как раз об этом!

      Ответить
  149. Давид (15 комм.)

    Всем привет. АлаичЪ проблемы в Dle 9.7

    site.ru/page/1 — на странице пишет просто "Redirect"

    Не делает редирект с

    site.ru/page/2 на site.ru/page/2/

    site.ru/category/page/2 — делает редирект на site.ru/category/

    Как можно это все исправить?

    Спасибо большое.

    Ответить
  150. Дима (14 комм.)

    Здравствуйте Многоуважаемые Посетители и Alaev)))

    У меня проблема (все пункты вернул...дважды до всех изменений...как если бы не заходил на этот блог) но всё равно редирект идёт на главную с адреса http://site.ru/engine/download.php?id=350

    Вот у него нету редиректа http://baldeem-vmeste.ru/novinki/1058-moy-paren-psih.html если в браузер вставить его ссылку http://baldeem-vmeste.ru/engine/download.php?id=1138 (это торрент этой же новости, просто из исходника взял)

    У меня торрент движок но не в этом дело, мне ради партнёрки mail.ru надо позарез чтобы скачивался через браузер торрент (ссылки рабочие абсолютно, я просто привел пример одной из них)

    Вобщем чтобы НЕ срабатывал редирект на главную надо, надо убрать редирект.

    Будъте так ДОбры подскажите пожалуйте как исправить.

    Заранее Спасибо Огромное Вам))))

    Ответить
    • NeedLe (21 комм.)

      А если в настройках файлов вот тут "Блокировать скачивание файлов с других серверов" — поставить нет?

      Ответить
      • Дима (14 комм.)

        http://tnt-torrent.org/games/566-skachat-torrent-gta-4-grand-theft-auto-iv.html вот если нажать на зелёную кнопку СКАЧАТЬ виден адрес (поднести курсор...или через исходник как угодно найти ссылку) http://tnt-torrent.org/engine/download.php?id=350 вот ссылка! скачивание успешно через кнопку разумеется... НО если вставить в браузер эту ссылку http://tnt-torrent.org/engine/download.php?id=350 и нажать Enter (просто перейти Господи) то редирект на главную идёт!

        http://profitraf.ru/ вот партнерка ,её смысл, что скачивается файл mail.ru в котором тулбар предлагается и браузер mail.ru установить, просто галочки стоят...ну как это бывает у программм...файл .exe ...а далее этот файл скачивает настоящий торрент и даёт пользователю...она открывает мой сайт и я вижу долю секунды в адресной строке мелькает ссылка и сразу редирект на главную ,поэтому торрент не успевает и не может быть скачан.

        Понимаете? Вот как убрать редирект...я КЛЯНУСЬ дважды возвращал все пункты по умолчаню...все 4 раздела оптмизации (URL борьба с дублями...htaccess и так далее) я веду дневник и все изменения у меня записаны кажись. Но всё равно редирект идет.

        Я не могу понять к какому пункту оптимизации...какой файл отвечает за это...куда копать...понимаете?

        Ответить
      • Дима (14 комм.)

        ВЫ ГЕНИЙ!!!!!!!! СПАСИБО Needle!!!!!!! Ой как Вы мне помогли!!! Я до 7 утра мучался!!!

        "Блокировать скачивание файлов с других серверов" поставил НЕТ и теперь все посетители могут качать реальный торрент)))) СУПЕР))))) Ой Господи...а с этими редиректами...оптимизацией... php файлами мучался.

        Хорошо, что сюда решил написать. Всем Удачи))) Needle просто до Гроба благодарен буду Вам!!!

        Ответить
        • NeedLe (21 комм.)

          Не поверите, сам как то мучался тоже с партнеркой от майла, даже писал в тех-поддержку, правда потом было самому стыдно, что не дочитал инструкцию до конца =)

          Ответить
  151. Simur (20 комм.)

    А если у меня в хтачез прописано так:

    RewriteEngine On

    RewriteRule ^forum/(.*)$ forum/$1 [L]

    RewriteCond %{HTTP_HOST} ^site.ru

    RewriteRule (.*) http://www.site.ru/$1 [R=301,L]

    Зеркало главное с www. Так не правильно?

    В первой строчке у меня нет — $ [NC]

    Во второй нет — $ перед http

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

    Здравствуйте Александр, спасибо вам за все 4 статьи по оптимизации dle. Я выполнил все необходимые правки со всех 4-ех статей, версия dle 9.7. Смотрите что мне не совсем понравилось — Например сайт http://site.ru пишешь вот такую например шляпу http://site.ru/sdasadsadasd.png и сайт открывает этот адрес, а на нём главная страница... Никакого 301-ого на главную (вместо 404) не производится. Не знаете в чём дело? это ведь получается можно миллионы дублей главной сделать... Или я чего то не понимаю? Объясните пожалуйста. Так же происходит если в url добавить существующую категорию сайта http://site.ru/category/sdasadsadasd.png так же открывается этот адрес с содержанием главной страницы.

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

    На другом сайте на Dle 9.5 аналогичная ситуация, так же делал всё что актуально для моей версии по 4 статьям.

    Ответить
  154. Константин (2 комм.)

    Подскажите пожалуйста. У меня Гугл и Яндекс определяет ссылки с календаря новостей как битые 404 в смысле...

    Подскажите что делать?

    И еще находит ссылки типа сайт.ру/категория/страница/2/сайт.ру

    Как это удалить? И избежать повтора.

    Ответить
    • Константин (2 комм.)

      После проделанных выше указанных замен. Ошибки из 148 уменьшилось до 4.

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

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

        А на самом деле ссылки календаря битые? :)

        Ответить
  155. Роман (11 комм.)

    Здравствуйте! Очень интересная и полезная статья, воспользовался всеми советами приведенными в ней. Но столкнулся с такой проблемой, решение которой здесь не нашел, поэтому решил обратиться за помощью. Проблема вот в чем, на сайте переименовал раздел, как название так и урл на него, и теперь при переходе по старым ссылкам вылазит ошибка. Возможно ли сделать редирект с этого удаленного раздела на новый рабочий? И еще одно, менял как-то название урлов в новостях, теперь в вебмастере гугл имеются дубликаты с одинаковыми новостями, но с разными урлами, как это можно исправить?

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

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

      Redirect 301 /stariy-url http://site.ru/noviy-url

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

        Вот так вот и вписать

        Redirect 301 /мой_сайт/категория/ http://мой_сайт/новая категория/ — то есть никаких лишних символов вписывать туда не нужно? Уточняю, т.к. я в этом не очень то разбираюсь))

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

          Спасибо, все получилось!

          Ответить
  156. Юрий (23 комм.)

    Здравствуйте, при установке вашего варианта редиректа с index.php на категории и главную без index.php, мы вганяем свой сайт в бесконечное число дублей — несуществующих страниц, например, site.ru/fgfgfgf.php.php, где вместо "fgfgfgf" можно написать что угодно! И никакого редиректа, только с index.php будет редирект!

    Я предлагаю следующий код для вставки в .htaccess сразу после RewriteEngine On (вместо site.net нужно прописать домен своего сайта):

    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/

    RewriteRule ^index\.html$ http://site.net [R=301,L]

    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/

    RewriteRule ^index\.php$ http://site.net [R=301,L]

    P.S. Тестировалось на DLE 9.7

    Ответить
    • Саня (2 комм.)

      Тоже заметил этот косяк, спасибо за поправку.

      Ответить
  157. Simur (20 комм.)

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

    DLE 9.7. Сделал выше описанное, но редиректа нет. Все равно можно зайти на страничку сайт/page/1/, сайт/page/5/ и т.д.

    Плюс в выдаче гугла есть эти странички и они просто дублируют главную... Прописать в роботс это: Disallow: */page/ ?

    Ответить
  158. igorockk (2 комм.)

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

    Ответить
  159. Simur (20 комм.)

    Немного подробнее о моей проблеме:

    1. У меня на главной, новости выводятся не так как по стандарту в DLE (вывод 10 новостей, а переходя по страничкам 1,2,3 попадаем на странички сайт/page/1/, сайт/page/2/, сайт/page/3/ с новостями по убыванию даты). А у меня выводятся блоки: последние новости, комментируемые новости, популярные и т.д.

    Таким образом попадая на странички сайт/page/1/, сайт/page/2/, сайт/page/3/, дублируется главная страница.

    Как я говорил выше, сделав "Склеиваем адреса страниц /page/1/ с основными адресами для главной страницы и категорий", у меня нет редиректа на главную. А вот если я укажу не иснующую страничку (например сайт/page/10000/), то перекидывает на последнюю существующую.

    2. Плюс в выдаче гугла есть эти странички и они просто дублируют главную (сайт/page/1/, сайт/page/2/... сайт/page/15/). Я так понял это можно исправить этим: Disallow: /*/page/ , Disallow: /*/*/page/.

    Только где это лучше прописать, в роботс или метатеге?

    Спасибо за очень полезный блог!!!

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

      Лучше при помощи метатегов закрой все страницы пагинации, и проблем не будет.

      Ответить
      • Simur (20 комм.)

        Это должно выглядеть как-то так?

        if ($subaction == 'userinfo' OR

        $subaction == 'allnews' OR

        $subaction == 'newposts' OR

        $do == '*/page' OR

        $do == '*/*/page' OR

        $do == 'go' OR

        $do == 'stats' OR

        $do == 'addnews' OR

        $do == 'register' OR

        $do == 'favorites' OR

        $do == 'rules' OR

        $do == 'pm' OR

        $do == 'feedback' OR

        $do == 'lastcomments' OR

        $do == 'lostpassword' OR

        $do == 'search' OR

        $do == 'lastnews' OR

        $do == 'alltags' OR

        $do == 'tags' OR

        $dle_module == 'date' OR

        (intval ($_GET['cstart']) > 1 )) $metatags .= <<<HTML

        \n<meta name="robots" content="noindex,nofollow" />

        HTML;

        Если что-то лишние, то подскажите пожалуйста что убрать. Заранее спасибо)

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

          Все написано в соответствующем посте — http://alaev.info/blog/post/3900

          Ответить
          • Simur (20 комм.)

            Если я правильно понял, то вместо этого в роботс: Disallow: /*/page/ и Disallow: /*/*/page/

            нужно в метатеге прописать это: (intval ($_GET['cstart']) > 1 )

            Верно?

            Ответить
  160. ivanet (2 комм.)

    Пожалуйста, помогите разобраться с дублями! Есть страница вида http://мой сайт/articles/74-страница.html/ Недавно заметила в индексе гугла страницы такого вида http://мой сайт/articles/articles/articles/articles/74-страница.html/ , причём эти articles/можно добавлять бесчётное количество раз и каждый раз будет открываться одна и та же страница. Всё это применимо не только к статьям из articles/, но и к другим категориям сайта. Что делать ???

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

      Проблема исчерпана, решение найдено в статье описаной выше, "Устраняем проблему с дублированием полной новости по разным адресам" АлаичЪ, спасибо огромное за Ваш бесценный труд !!!

      Ответить
  161. SergeS (1 комм.)

    Доброго времени суток. У меня аналогичная ситуация — примерно неделю назад создал себе новый сайт, он еще путем не проиндексировался в Яндексе. А вот Гугл уже его схавал и посмотрел, что же влетело в индекс, когда посмотрел, то там одни дубли страниц.

    Помогите пожалуйста навести порядок? По тому как один сайт, я уже под фильтр Яндекса загнал( и как мне обьяснили — это из — за дублей.

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

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

    Ответить
  162. Павел (2 комм.)

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

    Руководствовался Вашими советами по оптимизации. Заметил, что страницы сайта по адресу fc-arsenal.by/index.php?newsid=5493 почему-то редиректятся на http://www.5493-tekstovaja-transljacija-matcha-uigan-arsenal.html/.

    Где я что-то упустил? Спасибо.

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

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

      Ответить
  163. Владимир (2 комм.)

    Помогите пожалуйста. При выполнение пункта: "Устраняем неразбериху с категориями их вложенностью и слешем / на конце" не происходит редирект на нужную страницу, а появляется пустая страница с текстом: Redirect

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

      Значит или что-то не так сделал или не для той версии движка используется правка (правка совместима только с версиями до 9.2 включительно).

      Ответить
  164. pnul (2 комм.)

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

    Подскажите пожалуйста, как правильно убрать дубль с index.php у галереи и форума, с адресами sipe.ru/gallery/index.php и site.ru/forum/index.php?

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

      В htaccess добавить:

      Redirect 301 /gallery/index.php http://site.ru

      Redirect 301 /forum/index.php http://site.ru

      Ответить
  165. Юрий (23 комм.)

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

    Если делать вставку в .htaccess, то ничего не работает. А вот если по инструкции внести изменения только в файл /engine/engine.php, то все прекрасно работает.

    Ответить
  166. Simur (20 комм.)

    Здравствуйте, сразу извиняюсь за тупость, но так нужно?

    ### START Определяем главное зеркало как www.site.ru (www.site.ru заменить на свой домен, например www.alaev.info)

    RewriteCond %{HTTP_HOST} ^alaev\.info$ [NC]

    RewriteRule ^(.*)$ http://www.alaev.info/$1 [R=301,L]

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

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

      Ну, если твой сайт расположен по адресу www.alaev.info, то именно так и нужно =)

      Ответить
      • Simur (20 комм.)

        Ну нет))))

        Там я пропишу свой)))

        АлычЪ, а подскажи еще пожалуйста, что прописать, чтоб убрать дубли:

        http://www.site.ru/forum и http://site.ru/forum?

        И в каком это хтачес прописать: сайта или форума?

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

        Ответить
  167. 533312 (11 комм.)

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

    для 7.5 версии DLE Нет решения? гугл жалуется (Страницы с повторяющимися заголовками (теги title) 2)

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

      Если вариант, описанный в посте, не подходит — то других решений нет.

      Ответить
  168. mfa (3 комм.)

    Здравствуйте! Подскажите пожалуйста решение. Сайт на DLE 7.5 (знаю старый, но мой :)).

    Так вот проблема:

    http://site.com/category

    и

    http://site.com/bla-bla-bla/category

    выдает одно и то же, то есть не редиректит обратно на /category и можно понаписывать там всякой ерунды.

    Как побороть? Буду Очень благодарен, если получится решить.

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

      Увы, такой старой версии у меня нет, так что смотреть негде. Придется как-то самостоятельно пытаться сделать по аналогии с написанным в посте.

      Ответить
  169. Алекс (45 комм.)

    Оптимизирую уже второй сайт (дле 9.8) по твоим руководством, вот сейчас всплыл такой момент, по адресам типа http://site.ru/page.htmlbla-bla-bla открывается главная страница site.ru, то есть полный ее дубль.

    С этим надо что-то делать или не истерить?

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

      Добавь после RewriteEngine On:

      RewriteBase /
      RewriteCond %{REQUEST_URI} ^(.*)\.html(.+)$
      RewriteRule ^(.*)\.html(.+)$ $1.html [R=301,L]
      Ответить
      • Алекс (45 комм.)

        То, что надо. Редиректит с site.ru/page.htmlbla-bla-bla на site.ru/page.html

        Спасибо, Алаичъ!

        Ответить
  170. Антон (5 комм.)

    Автору большое спасибо!

    Сделал все как описано в этих статьях. Но вот такой бок появился:

    http://site.ru/8-novost.html и http://site.ru/1,1,8-novost.html — одинаковые и не редиректит на верную новость, вместо новости показывается главная страница. К стати вместо (1,1,) можно поставить любые цифры и сколько угодно их, также вместо "," можно поставить точки — эффект тот же.

    Подскажите пожалуйста, как сделать редирект на верную новость?

    Двиг версии 9.5, тип ЧПУ 2

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

      Добавь после RewriteEngine On:

      RewriteBase /
      RewriteCond %{REQUEST_URI} ^(.*)([0-9]+)\,([0-9]+)\,(.*)\.html$
      RewriteRule ^(.*)([0-9]+)\,([0-9]+)\,(.*)\.html$ $1$4.html [R=301,L]
      Ответить
      • Антон (5 комм.)

        Большое спасибо! Теперь редиректит на верную новость.

        Но решилась только часть проблемы — много цифр через запятую (http://site.ru/1,1,8-novost.html) редиректятся правильно, но если поставить только одну цифру и запятую (http://site.ru/4,8-novost.html), то снова летим на главную.

        И еще: та же проблема и с точками после цифр — http://site.ru/1.1.5.8-novost.html и http://site.ru/5.8-novost.html это все летит на главную, ссылки остаются такими же.

        Помоги плизз

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

          Прекрати сочинять чушь и успокойся. Надо решать реальные существующие проблемы, а не пороть горяку. Я могу придумать 100500 ошибочных url, которые будут дублировать что-нибудь, но то ведь не значит, что надо делать 100500 редиректов!

          Ответить
  171. Evgenii (3 комм.)

    при выполнении пункта "Склеиваем адреса страниц /page/1/ с основными адресами для главной страницы и категорий" появилась такая проблемка! при переходе на страницу http://site.net/категория/page/1/ переадресация на страницу http://site.net/категория/ не происходит а выдает 404 ошибку и в адресной строке отображается такой адрес http://site.net/usr/local/pem/vhosts/******/webspace/httpdocs/site.net/категория/

    а при http://site.net/категория/page/1 переадресация проходит отлично на http://site.net/категория/

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

      Ага, понятно. Правки вносились и в htaccess и в php? Если в htaccess вносились, то перед этими правками стоит добавить строкe:

      RewriteBase /

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

      Ответить
      • Evgenii (3 комм.)

        Изменения вносились строго по вашей инструкции (.htacces php файлах)

        Спасибо вам, после добавления строки реврайтебасе / в фаиле .хтаксес все заработало на ура)))

        Ответить
  172. Evgenii (3 комм.)

    АлаичЪ

    У меня есть такой вопрос к вам, нужно ли делать редирект со старых урлов на новые на дле 9.8 при смене чпу с тип2 (такой вид был на полную новость http://site.ru/категория/подкатегория/id-имя новости.html) на тип1 (http://site.ru/id-имя новости.html) ???? или они обрабатываются автоматом при включенной функции "обрабатывать неверные урл.чпу"

    Если надо делать 301 редирект,то подскажите пожалуйста как правильно его сделать?

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

      Откуда мне знать :) Я тип ЧПУ каждый день не меняю! Просто возьмите и попробуйте. Насколько мне известно, ничего "шаманить" не придется, редиректы должны сами срабатывать. Ну. и понятно, что необходимо активировать соответствующую настройку, о которой вы и говорили.

      Ответить
  173. Влад (1 комм.)

    Добрый день! Имею проблему следующего характера. После выполнения ваших рекомендаций дубли в большем пропали. Также я сменил тип УРЛ на 1 тип, для того чтобы большая часть старых УРЛ показывала Гуглу 404ю ошибку. Но, почему то, вместо 404й, старые урл все ведут на статью, которая опубликована на главной странице! Не могли бы вы помочь советом, как сделать,чтобы старые УРЛ вели на 404?

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

      При смене типа ЧПУ срабатывает автоматический редирект для всех новостей на новые адреса. Это правильно и так должно быть.

      Ответить
  174. Эдвард (16 комм.)

    Здравствуйте. На двbжке DLE у меня на сайте несколько категорий, у каждой категории несколько page с разными видео роликами, я написал контент для 1-ой категории, но он появляется один и тот же на каждой странице этой категории, как можно запретить показывать один и тот же текст на разных страницах в одной категории, и как можно вставить другой текст в страницу 2, 3, 4 ...? Заранее спасибо за ответ.

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

      Это запросто вместе с модулем CatFace — http://alaev.info/blog/post/2086

      Ответить
  175. VSN (14 комм.)

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

    Возможно вопрос будет не по теме, но я буду признателен если вы поможете. Есть сайт на дле 9.8, главная страница у него с определенным количеством кратких обзоров из различных категорий, которые выводятся с помощью тегов {custom}. Дело в том, что имеется необходимость в выводе ВСЕХ новостей тегом {content} в виде каталога с стр. пагинации, думал использовать http://site.ru/page/1/, но происходит редирект на главную. Третий день голову ломаю, как вывести все новости на отдельной странице. Прошу помочь.

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

      Не знаю даже, как сделать такую хитрость без модулей. Можно поместить тег {content} в теги [not-page-count=1,2,3][/not-page-count] и давать ссылку на http://site.ru/page/2/. Правда новостей с первой страницы там не будет видно. Но можно костыль сделать, на странице списка новостей в админке выбрать несколько (ровно столько, сколько выводится новостей на одной странице) новостей старых и зафиксировать их. Получится так, что эти новости займут всю первую страницу и переместят самые новые новости на вторую страницу, что нам и надо.

      Ответить
  176. Валентин (67 комм.)

    Здравствуйте! У себя на сайте, я отключил мобильную версию сайта из-за того, что раньше была ссылка на мобильную версию сайта в шаблоне, и гугль пишет что мол дубли титле и дубли метаописаний главных страниц сайта "/ и /index.php?action=mobile", так вот после отключения ссылка на /index.php?action=mobile в адресной строке не исчезает при переходе по ней, хотя находишься на обычной версии сайта...

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

    Спасибо. dle — 9.6

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

      Да, если эта ссылка больше не нужна, можно сделать редирект, я писал об этом здесь http://alaev.info/blog/post/4393

      Иначе, ссылку можно просто закрыть от индексациии через robots.txt

      Ответить
  177. Валентин (67 комм.)

    Подскажите как можно убрать дубли title и description для страниц в новости, которая разбита по страницам?

    В google постоянно висят эти дубли...

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

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

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

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

    Не срабатывает редирект вида: http://site.ru/category/page,1,2,895-name.html, и подобные этому, все делал согласно описанного поста. Версия DLE 7.5, помогите пожалуйста разобраться с данным редиректом, хотя по данной статье это была php вставка в код DLE.

    Спасибо!

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

    PPS Думал что можно сделать редирект в этом классе /engine/classes/comments.class.php но в версии DLE 7.5 нет такого файла в дистрибутиве. Буда рад, если поможете.

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

      Такие страницы и не должны редиректиться, т.к. это адреса страниц комментариев.

      Ответить
  179. Эдуард Говнов (3 комм.)

    Есть сайт www.site.ru и форум www.site.ru/forum/

    Все новости с сайта, автоматом дублируются на форум, и соответственно Яша индексирует и то и другое.

    Как это может повлиять на продвижение сайта?

    Если все это очень плохо, то стоит ли в robots.txt запретить индексацию форума?

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

      Сложно сказать однозначно.

      Возможно, стоит выводить на форуме лишь анонс новости или просто первые xxx символов, а ниже ссылку на новость на сайте.

      Ответить
  180. mixail366 (13 комм.)

    Добрый день!

    Надоело мне постоянно удалять вот дубли на главную страницу сайта из гугла вебмастера вот такого типа:

    /trillery-online/Film-on.org

    /uzhasy...

    /voennye-online/194-chernaya-kniga-zwartboek-black-b...

    Даже и не знаю откуда они берутся. Я их удаляю и редирект в файле .htaccess прописываю на подходящую страницу или категории или новости. Через какое то время они отваливаются (примерно через месяц). Но появляются новые. Помогите как то с этим справиться. Движок 9.7. Пробовал "Устраняем проблему с дублированием полной новости по разным адресам", не помогает то же.

    Ответить
  181. Валентин (67 комм.)

    АлаичЪ, подскажите как решить проблему с дублями при включенной функцией "Автоматическое формирование буквенного каталога публикаций". Дублируются ссылки на одну и туже страницу каталога вида — /catalog/m/ и /catalog/m (то есть дублируются ссылка на любую букву со слешем со ссылкой на ту же букву без слеша), в шаблоне ссылки на буквы без слеша, не знаю где гугль нашел ссылки со слешем... но он выводит их как "Повторяющиеся заголовки (теги title)" и "Повторяющееся метаописание".

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

    Спасибо.

    Ответить
  182. Павел (4 комм.)

    а как склеивать если у сайта есть зеркало, например www.gbdd.com.ua, gbdd.com.ua, www.gbdd.ru и gbdd.ru, последнее является главным зеркалом.

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

      Вот как-то так — http://alaev.info/blog/post/4393#comment-17192

      Ответить
  183. Саня (2 комм.)

    АлаичЪ, после проведенных манипуляций из данной статьи и из этой http://alaev.info/blog/post/3294, у одного сайта появились дубли главной страницы, такие как site.ru/tut_chto_ugodno/index.html

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

    Ответить
  184. Евгений (2 комм.)

    Просмотре всю статью и все комменты, но ответа не нашёл (или не увидел).

    Как сделать верный редирект с site.ru/page на site.ru/page.html

    Найденные в сети варианты либо не работают, либо зацикливают до site.ru/page.html.html.html...

    Ответить
    • Евгений (2 комм.)

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

      Но теперь htaccess раздулся, и боюсь, что-то дублируется... Но всё работает как надо)

      Ответить
  185. Вячеслав (1 комм.)

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

    Продукция дублируется порядка трех раз. Например:

    http://www.ruselt.ru/catalog/production/shtil/557/

    http://www.ruselt.ru/catalog/production/r220/557/

    http://www.ruselt.ru/catalog/production/vse_stabilizatory_napryazheniya/557/

    Поисковая система индексирует все три страницы. Я делал яндекс острова и указывал там разделы допустим r220 ну или в маркете и других сервисах. Если я закрою в robots.txt от индексации этот раздел, то будет ли функционировать маркет, острова и так далее. А так же эти страницы отличаются title

    Что лучше убрать и посредствам чего это сделать?

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

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

      Ответить
  186. MFA (3 комм.)

    Уважаемый Алаич! Подскажите пожалуйста, как настроить редирект в дле 7.5 со следующих урлов на правильные:

    site/uploads/pic/046.jpg+ACI

    site/uploads/pic/046.jpg+ACIAPg

    site/uploads/pic/238.jpg+ACIAPgA8-/a+AD4

    site/uploads/pic/vna.jpg%5Cu0026size=103.4KB%5Cu00…

    site/uploads/pic/158.jpg%5Cu0026size=56.7KB%5Cu0026p=%...

    Появились вот такие внешние ссылки на картинки сайта. Но кривые какие-то.

    Надо сделать редирект с *.jpg+* на *.jpg и с *.jpg%* на *.jpg

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

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

      Интересные дела. Могу предположить, что должно помочь следующее:

      RewriteRule (.*)\.jpg(.+) $1.jpg [R=301,L]
      Ответить
      • MFA (3 комм.)

        АлаичЪ — ты мозг! :)) Большое тебе спасибо! Все работает нормально

        Ответить
  187. Sibiryak (6 комм.)

    Алаич, привет, такой вопрос. Вот кусок из хтассес DLE:

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

    А как сделать наоборот? Что бы редиректило с site.com на site.com/index.html

    Только не на DLE, а на html шаблоне

    Будьте добры, подскажите?

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

      Что значит «Только не на DLE, а на html шаблоне»? Я не понимаю.

      А сделать редирект site.com -> site.com/index.html проще простого:

      RewriteRule ^$ /index.html [R=301,L]
      Ответить
      • Sibiryak (6 комм.)

        О спасибо огромное!!!

        Да я просто не так выразился на счет html шаблона и dle ...

        Ответить
  188. Vadim (6 комм.)

    АлаичЪ, подскажите пожалуйста!

    Как сделать редирект такого плана??????

    site.ru/tags/one+two+three/ --> site.ru/tags/скачать+one+two+three/

    site.ru/tags/two+three+one/ --> site.ru/tags/скачать+two+three+one/

    site.ru/tags/three+two+one/ --> site.ru/tags/скачать+three+two+one/

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

      Сделать не сложно, но меня смущает кириллический url, возможны проблемы. Кириллические символы в адресе — это плохо. Да и теги тоже — зло.

      Ответить
      • Vadim (6 комм.)

        Смотрите какая ситуация: по яндекс-визор смотрю что ко мне на сайт попадают на страницы которых нет

        пример: попадают на страницу site.ru/tags/one+two+three/(которой нет), но есть страница site.ru/tags/скачать+one+two+three/

        вместо слова "скачать" там такая абревиатура "%F1%EA%E0%F7%E0%F2%FC"

        По поводу теги это зло, то оно то понятно, но как без их.

        Взгяните глазком на сайт, может подскажете что-то, думаю что вы сразу же назвете сайт ГС, но это мое первое творение которое в моих глазах СС (супер сайт))). Да и плюс хочу еще один сайт сделать но уже по тематике кулинарии и хочется что бы он был СДЛ и приносил пользу.

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

          ГС каких свет не видывал...хотя почему же не видывал, еще как видывал — их целая куча!

          На счет редиректа, можно попробовать так:

          RewriteRule ^tags/(.+)$ /tags/%F1%EA%E0%F7%E0%F2%FC+$1 [R=301,L]

          А может быть и так:

          RewriteRule ^tags/(.+)$ /tags/скачать+$1 [R=301,L]

          И все же я бы отказался от тегов. Удалил бы их все и сделал редирект на главную:

          RewriteRule ^tags/(.+)$ / [R=301,L]
          Ответить
          • Vadim (6 комм.)

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

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

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

              Ответить
          • Vadim (6 комм.)

            Хочу прописать это:

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

            А у меня прописано это:

            RewriteRule ^tags/([^/]*)(/?)+$ index.php?do=tags&tag=$1 [L]

            RewriteRule ^tags/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=tags&tag=$1&cstart=$2 [L]

            Нужно просто рядышком дописать или заменить?

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

              Что мешает взять и прописать?

              Ответить
              • vadim_doom (6 комм.)

                Прописал — RewriteRule ^tags/(.+)$ / [R=301,L]

                но редирект почему от не осуществляется? с чем это может быть связано?

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

                  Может быть не туда добавлен код, попробуйте добавить сразу после строки RewriteEngine On.

                  Ответить
  189. Алена (2 комм.)

    Здравствуйте. Подскажите, как через .htaccess сделать, чтобы при переходе на одну страницу открывалась другая?

    Пример:

    Нажимаем на http://alaev.info/channel.aspx?chid=23 открывается http://alaev.info/blog/post/2400

    PS. Все перепробовала, никак не получается.

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

      Вам сюда — http://alaev.info/blog/post/4393

      А делается довольно просто:

      RewriteCond %{QUERY_STRING} ^chid=23$ [NC]
      RewriteRule (.*) /blog/post/2400? [R=301,L]
      Ответить
  190. Simur (20 комм.)

    И Считается ли дублем страницы страницы со слешем:

    сайт.ру/lastnews/

    и

    сайт.ру/lastnews

    А также страницы пагинации:

    сайт.ру/lastnews/page/1,2,3 и т.д./

    и

    сайт.ру/lastnews/page/1,2,3 и т.д.

    Также при проделке пункта: Убираем index.php из адреса главной страницы и страниц категорий

    1. с этими страницами все ОК, идет редирект на главную (http://site.ru и http://site.ru/index.php, http://site.ru/category/index.php)

    2. А вот переходя на эти страницы (http://site.ru/search/index.php, http://site.ru/tag/index.php), переходит на страницы без index.php (http://site.ru/search/, http://site.ru/tag/). А на странице пишется: По данному адресу публикаций на сайте не найдено, либо у вас нет доступа для просмотра информации по данному адресу.

    Это так и должно быть? Т.к. на ДЛЕ 9.7 после этих правок, перекидывало на главную страницу...

    Ответить
  191. Блогер (1 комм.)

    АлаичЪ помоги устранить проблему:

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

    Перестает работать распечатка страницы в новости, как только убираю код //обработка неправильного alt-name и 301 редирект все прекрасно работает, такое дело что печать страницы очень нужна, а дубль страниц тоже не хочется убирать. Спасибо. Буду очень благодарен.

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

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

      Ответить
  192. Sergey (2 комм.)

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

    Помогите, пожалуйста, решить проблему, сам уже всю голову сломал, найти причину не могу. Пару месяцев назад стали появляться ошибки в гугл вебмастере, в мегаиндексе (онлайн анализатор сайта) такого плана, к странице любой странице сайта добавляется: %20http:/globalphysics.ru/igry-po-fizike. Вот пример:

    http://globalphysics.ru/online-testy-po-fizike/%20http:/globalphysics.ru/igry-po-fizike

    http://globalphysics.ru/physics/speed/%20http:/globalphysics.ru/igry-po-fizike

    http://globalphysics.ru/tags/%F2%E5%EF%EB%EE/%20http:/globalphysics.ru/igry-po-fizike

    http://globalphysics.ru/tags/%F3%F7%E5%ED%FB%E9/%20http:/globalphysics.ru/igry-po-fizike

    http://globalphysics.ru/page/7/%20http:/globalphysics.ru/igry-po-fizike

    то есть, к адресу раздела сайта, например: http://globalphysics.ru/online-testy-po-fizike/ через пробел добавилось %20http:/globalphysics.ru/igry-po-fizike и таких ошибок сотни.

    http://globalphysics.ru/igry-po-fizike — это тоже один из разделов сайта, но почему он добавляется к каждой странице, и тем более после http один слэш. И кроме этого гугл показывает, что на этот раздел (http://globalphysics.ru/igry-po-fizike) ссылаются все страницы сайта.

    Напрямую я этого не вижу, а гугл и другие анализаторы находят...

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

    Спасибо!

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

      Советую сделать такой вот редирект (не уверен на 100%, что именно такой код сработает):

      RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ \/(.+)http(.*)\ HTTP/
      RewriteRule ^(.+)http(.*)$ / [R=301,L]
      Ответить
      • Sergey (2 комм.)

        Попробую... Спасибо!

        То, что вы написали, решает проблему практически всех неверных адресов (происходит редирект на главную), за исключением адреса такого вида http://globalphysics.ru/page/7/%20http:/globalphysics.ru/igry-po-fizike

        Получается к странице пагинации добавляется %20http:/globalphysics.ru/igry-po-fizike в этом случае показывается 7 страница и редирект не происходит.

        Помогите, еще решить эту проблему. Спасибо.

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

          Я не знаю как это пофиксить.

          Ответить
  193. Andrey (2 комм.)

    Подскажите в чем может быть причина, того, что после перенеса сайта на движке DLE 9.8 на новый сервер, перестал функционировать редирект с www.sayt.ru — sayt.ru, с sayt.ru/index.php — sayt.ru и т.д.

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

      Откуда я знаю. Возможно, раньше это были настройки в панели хостинга. Смотрите .htaccess

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

        .htaccess тот же. Если не ошибаюсь то в DLE 9.8 это уже стандартная функция, или ошибаюсь?

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

          Нет такой стандартной функции.

          Ответить
  194. Элим (3 комм.)

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

    http://www.elimsband.ru/useful.html

    http://www.elimsband.ru/index.php?do=static&page=useful

    обработка неверных чпу включена

    Спасибо.

    Ответить
  195. vpkach (2 комм.)

    Александр, благодарю Вас, за всю проделанную работу по оптимизации DLE.

    Ответить
  196. Юрий (23 комм.)

    Что дает вот этот код при склеивании первой страницы сайта/категории с основным ее адресом?

    if ( ($config['allow_alt_url'] == "yes") && (intval ($_GET['cstart']) == 1) && (strpos ($_SERVER['REQUEST_URI'], '/page/1') !== false) ) {

    $first_page_url = str_replace ( "/page/1", "", $_SERVER['REQUEST_URI'] );

    header ("HTTP/1.0 301 Moved Permanently");

    header ("Location: $first_page_url");

    die ("Redirect");

    }

    Я вставил только в .htaccess код и все работает. Или я, что-то упускаю?

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

      Для подстраховки или если вариант с .htaccess не сработал.

      Ответить
  197. danila (23 комм.)

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

    Перестала работать в версии 10.2

    Вы не могли бы исправить хак?

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

      Оно и не должно работать в 10.2. Написано же "Только версии DLE 8.2-9.2.", а что делать в более старших версиях написано там же.

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

        Так то оно так, но бывают случаи (как у меня), что опцию «Обрабатывать неверные URL ЧПУ» включить не представляется возможным по некоторым причинам, вот я и пользовался вашими рекомендациями вплоть до версии 10.2.

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

          Это явно не стоит того, чтобы делать. По сути, те правки, это и есть обработка неверных url ЧПУ, только для тех версий, где этого нет изначально.

          Ответить
  198. Дзед Саша (45 комм.)

    Как настроить 301 редирект на главную страницу или страницу 404 ошибки с несуществующих урлов картинок?

    http://site.ru/uploads/posts/2013-03/net_takoy_kartinki.jpg

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

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

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

      Ответить
  199. Станислав (1 комм.)

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

    Тут я не-нашёл ответ на свой вопрос.

    Я сделал на-своём сайте на главной странице один материал (Приветствие, Описание и т.д.)!

    Всё хорошо получилось, но только одна проблема осталась!

    Можно увидеть все страницы сайта только со-второй страницы site.ru/page/2/ и остальные, а первая страница с новосями site.ru/page/1/ перебрасывается на главную (

    Мой вопрос:

    Как мне отключить переадресацию с site.ru/page/1/ на site.ru ???

    Спасибо!

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

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

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

    Добрый день.

    Подскажите пожалуйста.

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

    в гугл для веб мастеров

    Оптимизация HTML

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

    /product/polo-spring-ii-razmer-m Старый урл (сейчас, переходя по ссылке, страница не найдена)

    /spring-ii/polo-spring-ii-razmer-m Новый урл

    Подскажите пожалуйста как мне удалить старый урл, чтобы гугл не считал его.

    Может кто знает решение?

    Спасибо.

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

      Необходимо сделать 301 редирект со старого адреса на новый. Если такой возможности нет, то можно забить, со временем данные сообщения из панели пропадут.

      Ответить
  201. Григорий (3 комм.)

    Автору большое спасибо!!! Я уже ответил в статье про dle 9.3 где поменял урлы на нормальные. Все рекомендации выполнил — и все на УРА! Автор молодец! Побольше бы таких людей и было б гораздо легче нам)))

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

    Спасибо за ваш замечательный блог, очень много полезного из него узнал и реализовал на своем сайте.

    Много где искал но так и не нашел, может Вы могли бы написать пост как в DLE для активного пункта меню можно было убрать ссылку, пример — вместо ссылки добавляется что-то вроде <span class="active">анкор</span> (т.е. ссылка сама на себя пропадает, вместо тега <a> появился другой текстовый тег <span> или <p>)

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

      Так это просто делается при помощи тегов [category]. Только вот для каждого пункта надо будет такую конструкцию городить.

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

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

    Сделал все как написано, но сайт открывается как с www так и без. Версия 10.2

    Как быть?

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

      Я делаю так:

      RewriteEngine On

      RewriteCond %{HTTP_HOST} ^www.site.ru

      RewriteRule (.*) http://site.ru/$1 [R=301,L]

      100% Работает.

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

        Спасибо. Все работает.

        Ответить
  204. Вадик (1 комм.)

    А как для метода "Устраняем неразбериху с категориями их вложенностью и слешем / на конце" сделать чтобы отдавало 404 заголовки и 404 страницу с ошибкой? На 10-й версии дле.

    Ответить
  205. Один не дома (7 комм.)

    в 10.3 не работает редирект на категории со слешем

    пример:

    http://dle-faq.ru/faq/lamers/page/5

    не редиректит

    http://dle-faq.ru/faq/lamers/page/5/

    есть ли решение?

    Ответить
    • Один не дома (7 комм.)

      ставя вот это решение ниже

      //решение проблемы с категориями, которых не существует

      if (!$category_id AND $view_template != "rss") {

      header ("HTTP/1.0 301 Moved Permanently");

      header ("Location: {$config['http_home_url']}");

      die ("Redirect");

      }

      //решение проблемы с категориями, которых не существует

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

      Ответить
  206. Dmitriy46 (1 комм.)

    Разработчики DLE пишут что в версии 10.3 дублей нет.

    Может кто подтвердить???

    Ответить
  207. Юра (2 комм.)

    Здравствуйте. Не подскажите? Безопасно ли закрывать страницы типа /page/ или /category/page/? Я говорю о полном закрытии в robot.txt (Disallow: /*page/*). Может ли это как-то существенно повлиять на индексацию страниц sait.ru/category/statia.html, то есть скорость индексации и вообще индексации роботом, если скажем статей добавляется много и они уходят в /page/10, или бот будет ходить и находить, но просто не будет индексировать /page/? Так и не нашел вразумительного ответа не на серче не тут, может проглядел, тогда извиняюсь, ткните носом. Заранее спасибо!

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

      Все зависит от ситуации, но я на своих сайтах не закрываю. И вам не советую.

      Ответить
      • Юра (2 комм.)

        Понял. Спасибо за ответ! В моём случае это контентные сайты, с уник контентом. Как думаете стоит закрывать в таком случае?

        Ответить
        • Данила. (23 комм.)

          Я делаю noindex, follow и всё путём!

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

          Я бы не стал закрывать.

          Ответить
  208. Raimond (12 комм.)

    Здравствуйте как сделать редирект для категорий:

    www.site.ru/category/index.php

    www.site.ru/category/index.html

    поставил ваш:

    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html)\ HTTP/

    RewriteRule .* / [R=301,L]

    но он работает только для главной страницы... :(

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

      Вот так, я думаю:

      RewriteRule (.*)/index\.(php|html) $1 [R=301,L]

      Ответить
      • Raimond (12 комм.)

        Не помогло... :( перестал отображаться дизайн сайта...бред какой то.

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

          Ну тогда лучше ничего не делать.

          Ответить
  209. Евгений (1 комм.)

    Подскажите пожалуйста как убрать tags из url чтобы из http://sait.ru/tags/комедии/ получилось http://sait.ru/komedii/

    Ответить
  210. LoveMusic (7 комм.)

    Не нашел среди ответов, а в посте указано, что не трогать ничего если DLE младше 9.2

    Вопрос: как оставить только страницы, ИМЕЮЩИЕ слеш на конце, в разделах тегов?

    То есть страница типа:

    site.ru/tags/blabla

    должна прекращаться в страницу типа:

    site.ru/tags/blabla/

    Версия DLE 10.4

    Заранее спасибо. С Уважением

    Ответить
  211. Моя квартира (2 комм.)

    У меня сайт выполнен на Версия DataLife Engine: 10.3

    Интересует так же момент дублей страниц категорий без / и с /. Это разумеется site.ru/tags и site.ru/tags/.

    Заметил какую особенность в настройках движка включил "Обрабатывать неверные URL ЧПУ" и сразу все категории начали показываться с /. Получается таким способом убрались дубли или нужно еще что то делать?

    И еще 1 вопрос. решил избавится от дублей ndex.php или index.html, вставил все как нужно, но столкнулся вот с какой проблемой. Сейчас при вводе ndex.php редирект срабатывает и отправляет на ГЛ, а index.html отправляет на главную с / и выдает ошибку 404. Как быть?

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

      Для 10.3 ничего не надо делать, только включить "Обрабатывать неверные URL ЧПУ" и все.

      Ответить
      • Моя квартира (2 комм.)

        Спасибо. Так и сделал.

        А вот что на счет этого?

        Решил избавится от дублей ndex.php или index.html, вставил все как нужно, но столкнулся вот с какой проблемой. Сейчас при вводе ndex.php редирект срабатывает и отправляет на ГЛ, а index.html отправляет на главную с / и выдает ошибку 404. Как быть?

        Ответить
        • LoveMusic (7 комм.)

          На DLE нет страницы index.html (если Вы самостоятельно не создавали ее в Статических). А раз ее нет, то и ошибка соответствующая выдается. Ничего не надо делать)))

          Ответить
  212. Эдуард (3 комм.)

    Здравствуйте, при включении функции "Обрабатывать неверные URL ЧПУ" перестает работать вывод результатов Яндекс поиска. Это можно исправить?

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

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

      Ответить
      • Эдуард (3 комм.)

        Разобрался, ели отыскал в Ваших комментариях ответ на мою задачу) Теперь все работает, нужно было в static.php пару строк уничтожить.

        Ответить
  213. Борис (3 комм.)

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

    Есть ситуация: сайт.ру/категория1/категория2/категория1/категория3

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

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

      Включить "Обрабатывать неверные URL ЧПУ" в админке!

      Ответить
      • Борис (3 комм.)

        А можно ли как-то по-другому редирект сделать?

        При ЧПУ не нравятся, что страницы на .html заканчиваются

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

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

          Ответить
          • Борис (3 комм.)

            Спасибо огромное за ответы!

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

    Как устранить такие дубли:

    .ru/?do=feedback

    .ru/index.php?do=feedback

    .ru/feedback.html

    Ответить
  215. Макс (1 комм.)

    Александр, спасибо за проделанную работу.

    Хочу отметить один недочет (и он очень существенный).

    При двух 301-х "Определяем главное зеркало" и "Убираем слеш в конце" получается два последовательных 301-х, что совсем не хорошо и даже очень вредно. Пытался объединить эти два редиректа в один, но так ничего и не получилось.

    Ответить
  216. Евгений (7 комм.)

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

    Актуальность: Только версии DLE 8.2-9.2

    Работает и на 10.0 — наконец-то поправил редиректы при смене ЧПУ с тип 1 на тип 2

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

    http://URL.ru/category/123_news_name.html (сменил ЧПУ и новость должна выглядеть так)

    http://URL.ru/123_news_name.html (но вот незадача — старый адрес тоже открывается!)

    Ответить
  217. Адиль (1 комм.)

    Здравствуйте! редирект /page/1/ не работает на dle 10.4, не подскажите в чем проблема?

    Ответить
  218. Игорь (7 комм.)

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

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

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

      Ответить
  219. Давид (2 комм.)

    Здравствуйте! После сделанного все так как написано Вами не мог зайти на сайт пишет следующее "Внутренняя Ошибка Сервера. На сервере произошла внутренняя ошибка или неправильная и не смог выполнить ваш запрос. Пожалуйста, обратитесь к администратору сервера, "тут моя почта" и информировать их о времени произошла ошибка, и все, что вы могли бы сделать, что может вызвать ошибки. Дополнительная информация об этой ошибке могут быть доступны в журнал ошибок сервера." В чем может быть проблема?

    PS версия dle 10.5

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

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

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

    Приветствую! Подскажите как избавиться от дублей такой страницы

    /?do=orderdesc

    /index.php?do=orderdesc

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

    Вот эта проблема с редактированием профиля решена http://alaev.info/blog/post/2400#comment-9812

    Но как оказалось осталась проблема с заполнением дополнительных полей при регистрации (там где "Уважаемый посетитель! аккаунт зарегистрирован, но информация о вас не полная, заполните пожалуйста ... ") . Т.е. посетитель заполняет Имя, Город, а в профиле это не сохраняется. Не сохраняет именно с этой страницы, до внесения изменений все было нормально.

    Как победить?

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

    Ответить
  222. Yamakasi (7 комм.)

    столько коментов так и не нашёл вопроса по поводу статической страницы))

    а какой вариант убрать дубли с статической страницы? ну когда 1 статическая страница разбита на несколько, на dle 10.1 попадает под поиск типо таких страница /page,2,blabla.html

    Ответить
  223. ян (3 комм.)

    Подскажите пожалуйста, как оптимизировать дубли страниц такого типа — /page,1,2,502-watch-dogs-2013.html ?

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

      В свежих версиях DLE 10.x и выше это уже решено. Для старых версий я писал об этом в первой части http://alaev.info/blog/post/2373

      Ответить
  224. Иван (2 комм.)

    После применения редиректа для главной страницы перестал работать на сайте расширенный поиск http://www.ctm-stroy.ru/index.php?do=search , причём поиск с главной страницы работает, не могу понять в чём причина

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

    Здравствуйте, прочитал все статьи, такой вопрос, а если версия дле 9.7 и у меня в индексе яндекса к примеру есть дубликаты таких страниц как:

    http://site.ru/page/?1&17&298-zakazat-film.html

    http://site.ru/drama/page,1,2,5501-mister.html

    http://site.ru/drama/page,1,3,5501-mister.html#comment

    очень много страниц в индексе — http://site.ru/? и после знака "?" любые буквы — знаки и движок позволяет при таких неправильных ссылках заходить на главную страницу без редиректа, а по идеи должна быть страница 404, по поводу дублей страниц с комментариями, здесь нашел исправление но до версии дле 9.6, как же быть с 9.7?

    Ответить
  226. Артём (1 комм.)

    Здравствуйте, не получается настроить редирект site.ru/index.php не хочет перекидывать просто на site.ru Перепробовал уже все варианты со страниц. DLE 7.5. Что самое интересное, при вводе index.html — он работает, при вводе index.php — нет. Помогите, пожалуйста, решить проблему.

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

    Отличное руководство, все понятно и просто, а самое главное работает,

    Ответить
  228. Евгений (1 комм.)

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

    Не подскажите как убрать пагинацию на сайте

    http://site/kat/pod/page/2/

    http://site/kat/pod/page/3/

    http://site/kat/pod/page/4/

    Что бы в индексе оставалось Толька http://site/kat/pod/

    Версия 10.4 ...(В индексе 300 материалов и столько же это пагинации )

    Ответить
  229. ds8880 (6 комм.)

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

    После обновления до версии 10.6 и проделывания и выполнения оптимизации title из 1 части, добрался до 2 части и возникла проблема на "Редиректы с index.php или index.html на сайт":

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

    Дело в том, что с http://sait.ru/index.php с указанным кодом и без него происходит редирект на http://sait.ru/, а при вводе http://sait.ru/index.html появляется хвост http://sait.ru/?do=static&page=index&seourl=index — также с кодом и без него.

    По категориям еще не проверял.

    Как от него избавиться от этого хвоста?

    Ответить
    • ds8880 (6 комм.)

      Нашел решение.

      Открыть /engine/modules/static.php найти:

      @header ( "HTTP/1.0 404 Not Found" );

      Выше вставить :

      if (trim ($name) == "index")
      {
      	header ("Location: /");
      	exit ();
      }

      Теперь с sait.ru/index.html -> sait.ru/

      Ответить
      • ds8880 (6 комм.)

        Наверное, с точки зрения seo, предыдущее решение не совсем верно, так как в этом варианте с sait.ru/index.html идет 301 редирект на sait.ru/?do=static&page=index&seourl=index, а уже с этого адреса идет 302 редирект на sait.ru/

        Думаю, вот так будет более правильно.

        Открыть /engine/modules/static.php найти :

        	@header ( "HTTP/1.0 404 Not Found" );

        Выше вставить :

        if (trim ($name) == "index")
        {
        	header ("HTTP/1.1 301 Moved Permanently");
        	header ("Location: /");
        	exit ();
        }

        Теперь с sait.ru/index.html будет 301 редирект на sait.ru/?do=static&page=index&seourl=index, а с этого адреса и 301 редирект на sait.ru/

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

        АлаичЪ, хотелось бы ознакомиться с Вашим мнением, а также людей, хорошо разбирющихся в seo.

        Ответить
        • ds8880 (6 комм.)

          Проблему решил.

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

          	@header ( "HTTP/1.0 404 Not Found" );
          	$lang['static_page_err'] = str_replace ("{page}", $name.".html", $lang['static_page_err']);
          	msgbox ( $lang['all_err_1'], $lang['static_page_err'] );

          Заменяем на:

          if (trim ($name) == "index")
          {
          	header ("HTTP/1.1 301 Moved Permanently");
          	header ("Location: /");
          	exit ();
          }
          	@header ("HTTP/1.0 404 Not Found");
          	@header ("Status: 404 Not Found");
          	@require_once ($_SERVER['DOCUMENT_ROOT'].'/404.html');
          	exit ();

          Теперь, с sait.ru/index.html идет 301 редирект на sait.ru/ и никаких промежуточных звеньев, как то sait.ru/?do=static&page=index&seourl=index, нет.

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

            К чему весь этот сыр бор? Просто мой код надо вставлять сразу же после строки RewriteEngine On в файле htaccess, и все будет в порядке!

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

    Здравствуйте! Сделал вот так по инструкции http://joxi.ru/E2pnkazIBjEv1r — все работает отчлино, но добавляет 2раза id новости вот так 2579—2579-pyata-hvilya-2016.html как исправить?

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

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

      Может быть какие-то другие хаки и/или доработки делали в движке?

      Ответить
  231. Борис (3 комм.)

    Александр, подскажите, для DLE 11 можно эти доработки применять? Не будет ли каких нибудь проблем?

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

      Я бы не стал ничего применять на 11 версии.

      Ответить
      • Борис (3 комм.)

        Т.е. совсем правки не применять, или именно эти?

        Ответить
  232. svarog (2 комм.)

    Александр, спасибо вам за вашу работу — всё очень хорошо оъясняете. Есть у меня такой интерес: использую dle 10.6, включена мобильная версия (стандартный шаблон) — стоит ли закрывать её от индексации? Если "да", то как грамотно это сделать? Использую вашу кольцевую перелинковку (за что отдельное спасибо) — нужно ли её выносить в мобильный шаблон? Просто не могу разобраться, как происходит индексация мобильной версии.

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

      Я точно не знаю, а у мобильной версии есть отдельный специальный URL? Вроде бы нет, так что ничего предпринимать не следует.

      Ответить
  233. Валерий (58 комм.)

    Сегодня заметил в выдаче, что мои категории в выдаче имеют следующий URL (хотя на сайте таких ссылок нет):

    site.ru/index.php?do=cat&category=name-category.

    Саша, подскажи пожалуйста, как сделать 301 редирект на:

    site.ru/name-category/

    Заранее благодарю!

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

      Статья в помощь — http://alaev.info/blog/post/4393

      Ответить
  234. Артем (1 комм.)

    Пункт "Устраняем проблему с дублированием полной новости по разным адресам" не работает на 11.1 :(

    Можете показать рабочий код?

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

    Здравствуйте, вот такая проблема на DLE, не знаю как исправить, может вы поможете?

    Например давайте возьмем эту страницу : http://grandmods.ru/file/page/2/ это вторая страница файлового раздела на сайте.

    Но она почему то дублируется (Да и не только она, такого много на сайте с каждым разделом) например вот, дубль этой самой страницы: http://grandmods.ru/file/file/file/file/file/file/file/page/2/

    http://grandmods.ru/file/file/file/page/2/

    http://grandmods.ru/file/file/file/file/file/page/2/

    http://grandmods.rufile/file/file/file/file/file/page/2/

    Просто добавляешь в строку /file и открывается та же самая страница, почему не пойму, сайт по идее должен выдавать ошибку, что такой страницы не существует.

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

      А если попробовать просто не добавлять в строку /file?

      Ответить
Оставь комментарий или спроси через Twitter →

· Малоинформативные комментарии или комментарии, не содержащие вопрос, удаляются.
· В поле URL оставляйте ссылку только на свой сайт/блог. Эта ссылка для админа, посетители ее не увидят.
· Любой html-код отображается в виде текста, любые ссылки неактивны.
· Для спаммеров - БЛОГ НЕ DOFOLLOW!!!