Комплексное решение проблемы с внутренними дублями страниц на DLE

12
victim
На сайте с 12.02.2006
Offline
189
2258

Привет, друзья.

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

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

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

Схема такая: Возможный дубль -> 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

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

Особенно это будет актуально для тех, кто пользуется DLE уже давно с 7.х-8.х версий. Так что рекоменую всем проверить свои сайты на наличие данных проблем, хотя бы по списку из таблички выше.

Сюда весь листинг правок я не буду приводить, потому что очень много и долго. Да и потом я постоянно вношу какие-то корректировки, меняю, улучшаю, добавляю.

Потому предлагаю ознакомиться со всеми изменениями тут - http://alaev.info/post/2400

Буду рад ответить на все ваши вопросы, комментарии, замечания. А если вы вспомните из своей практики еще какие-то примеры дублирования, обязательно пишите о них, будем вместе разбираться, буду дополнять свое руководство!

CheckTrust.Ru (https://checktrust.ru/) - новый сервис для проверки ТРАСТа и заСПАМленности сайтов.
S_A_N_T_A
На сайте с 23.11.2009
Offline
154
#1

А не подскажите как сделать чтобы выходила 404ая, если в адресной строке вбивать - sute.ru/всякая-бредятина ???

victim
На сайте с 12.02.2006
Offline
189
#2
S_A_N_T_A:
А не подскажите как сделать чтобы выходила 404ая, если в адресной строке вбивать - sute.ru/всякая-бредятина ???

Подскажу =)

В файле engine/engine.php ищите строки:

		}


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

ВЫШЕ вставляете

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

if ( (strpos($_SERVER['REQUEST_URI'], '.html') !== false) AND ($subaction !== "showfull") ) {

header("HTTP/1.0 404 Not Found");
}
// решение проблемы с адресами страниц новостей где пропал id

Пробуйте, потом обязательно отпишитесь о результатах.

S_A_N_T_A
На сайте с 23.11.2009
Offline
154
#3

Видимо это не то. Сделал как вы указали, но всё равно если вбить в адресну строку страницу вида - site.ru/всякие-разные-буквы

выходит сообщение "По данному критерию новости не найдены, либо у вас нет доступа для просмотра этих новостей"

---------- Добавлено 06.02.2012 в 11:56 ----------

А нужно чтобы выходила 404ая

victim
На сайте с 12.02.2006
Offline
189
#4

S_A_N_T_A, Такс, погодите-ка. А в конце нет html в url'е?

Если нету, то надо поступать подругому:

В файле engine/engine.php ищем:

if (! $category_id) $category_id = 'not detected';

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

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

header("HTTP/1.0 404 Not Found");
}
S_A_N_T_A
На сайте с 23.11.2009
Offline
154
#5

Видимо опять не то. Не работает

Хортица
На сайте с 22.12.2006
Offline
289
#6

По поводу 404:

1) Создайте страницу 404 ошибки, залейте ее в корень и сделайте расширение .php (к примеру 404.php)

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

msgbox( $lang['all_err_1'], $lang['news_page_err'] );

Меняем на:

  $URL="/404.php";

header ("Location: $URL");

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

msgbox( $lang['all_err_1'], $lang['news_err_27'] );

Заменяем на (повторяется 2 раза, 2 раза и заменяем):

  $URL="/404.php";

header ("Location: $URL");

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

msgbox( $lang['all_err_1'], $lang['news_err_12'] );

Заменяем на:

  $URL="/404.php";

header ("Location: $URL");

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

msgbox( $lang['all_err_1'], $lang['news_err_26'] );

Заменяем на:

  $URL="/404.php";

header ("Location: $URL");

6) В .htaccess в корне по желанию или необходимости:

ErrorDocument 404 /404.php
На XBit.Money (https://xbit.money/?rid=111) меняю крипту на гривны. Лучшие курсы Обмен Вашего PayPal/ЯД/QIWI/WebMoney и куча плюшек! Рекомендую (https://exchangex.ru/index.php?who=26749)
S_A_N_T_A
На сайте с 23.11.2009
Offline
154
#7

Спасибо огромное, заработало!

S_A_N_T_A
На сайте с 23.11.2009
Offline
154
#8

А можно ли как нибудь сделать чтобы вело не на свою 404ую, а обычную 404ую которую выдаёт сервер?

victim
На сайте с 12.02.2006
Offline
189
#9
S_A_N_T_A:
А можно ли как нибудь сделать чтобы вело не на свою 404ую, а обычную 404ую которую выдаёт сервер?

А какую принципиальную разницу вы в этом видите?

Master_globus
На сайте с 15.09.2006
Offline
113
#10

В 9.x версия dle обратил внимание, что появилась новая ошибка. К адресу категории где то генерируется index.php. Соответсвенно везде вылетает 404 ошибка.

Пример:

domain.ru/category/index.php

domain.ru/category/podcategory/index.php

Работаю только с diafan.CMS 4.4.0 (http://cms.diafan.ru/cms576/)
12

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