Тема: Исправление битых url в DLE 9.7 (Для ЧПУ 1 и 2 типа)

Как я и говорил, недавно обновил один из своих сайтов до последней версии DLE 9.7. Примерно через 2-3 дня после обновления в панели вебмастера Google вылезла куча ошибок в разделе "Ошибки сканирования - Не найдено". Ошибки такого вида:
123-news-na..
345-another-news-nam../ и подобные.
При этом нормальный адрес новости site.ru/123-news-name.html или site.ru/345-another-news-name.html

Правки, описанные в моих руководствах на блоге, не подходят для правки таких адресов в 9.7.
Стал я разбираться в чем дело. И успешно разобрался wink
Вот как я выход нашел для ЧПУ 1 и 2 типа.

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

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

Выше добавляем:

RewriteRule ^([^.]+)/([0-9]+)-(.*)\.\.(/?)+$ index.php?newsid=$2&seourl=$3&seocat=$1 [L]

Находим:

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

Выше добавляем:

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

Теперь будет осуществляться 301 редирект на верные адреса!

2

Re: Исправление битых url в DLE 9.7 (Для ЧПУ 1 и 2 типа)

Это только с чпу 2 и 3 вида?

3

Re: Исправление битых url в DLE 9.7 (Для ЧПУ 1 и 2 типа)

А при включенном ЧПУ 1 нужно ли что-нибудь менять?

Re: Исправление битых url в DLE 9.7 (Для ЧПУ 1 и 2 типа)

Artyom91 пишет:

Это только с чпу 2 и 3 вида?

surcho пишет:

А при включенном ЧПУ 1 нужно ли что-нибудь менять?

Прошу прощения, ошибка вышла, это для ЧПУ 1 и 2 типа. Для 3 не подходит!

5

Re: Исправление битых url в DLE 9.7 (Для ЧПУ 1 и 2 типа)

Спасибо, теперь порядок!

6 (24.09.2012 18:43 отредактировано eskilo)

Re: Исправление битых url в DLE 9.7 (Для ЧПУ 1 и 2 типа)

Как всегда оперативно и полезно!!:)

7

Re: Исправление битых url в DLE 9.7 (Для ЧПУ 1 и 2 типа)

У меня не редиректит с site.ru/123-news на site.ru/123-news.html Не могу понять почему. Есть у кого какие либо предубеждения?

Re: Исправление битых url в DLE 9.7 (Для ЧПУ 1 и 2 типа)

KaiN_nRg, В htaccess найди:

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

Добавь выше:

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

Должно помочь.

9

Re: Исправление битых url в DLE 9.7 (Для ЧПУ 1 и 2 типа)

admin, тогда вообще страницу не отображает (Невозможно отобразить страницу). Не пойму, видимо конфликтует с другими твоими уроками по оптимизации.

10

Re: Исправление битых url в DLE 9.7 (Для ЧПУ 1 и 2 типа)

KaiN_nRg пишет:

Не пойму, видимо конфликтует с другими твоими уроками по оптимизации.

Все может быть...

Re: Исправление битых url в DLE 9.7 (Для ЧПУ 1 и 2 типа)

KaiN_nRg пишет:

У меня не редиректит с site.ru/123-news на site.ru/123-news.html

KaiN_nRg пишет:

admin, тогда вообще страницу не отображает (Невозможно отобразить страницу).

Тоже самое. ЧПУ 1

12

Re: Исправление битых url в DLE 9.7 (Для ЧПУ 1 и 2 типа)

Попробуйте тогда так:

RewriteCond %{REQUEST_URI} !\.html$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)-(.*)$ http://site.ru/$1-$2.html [R=301,L]

(правила добавлять сразу после строки с RewriteEngine On)

Re: Исправление битых url в DLE 9.7 (Для ЧПУ 1 и 2 типа)

admin пишет:

Попробуйте тогда так

Так работает. Благодарю.

14

Re: Исправление битых url в DLE 9.7 (Для ЧПУ 1 и 2 типа)

admin, ты как обычно на высоте. Работает. Большое спасибо!

Re: Исправление битых url в DLE 9.7 (Для ЧПУ 1 и 2 типа)

Спасибо, помогло :-)

16

Re: Исправление битых url в DLE 9.7 (Для ЧПУ 1 и 2 типа)

Всем привет! Может не совсем в тему. Но решил новую тему не создавать. Появился такой дубль у меня. Кто знает в чем проблема и как ее исправить? DLE 9,5, без ЧПУ.
http://kniganet.ru/index.php?newsid=668
http://kniganet.ru/index.php?newsid=668%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%BC

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

17

Re: Исправление битых url в DLE 9.7 (Для ЧПУ 1 и 2 типа)

MisterNet, В файле .htaccess сразу после строки:

RewriteEngine On

Добавить:

RewriteBase / 
RewriteCond %{QUERY_STRING} ^newsid=([0-9]){1,6}(.*)$
RewriteRule ^(.*)\.php\?(.*)([0-9]){1,6}(.*)$ $1\.php?$2$3 [R=301,NC,L]

Если не поможет первое, то может быть вот это правило сработает:

RewriteBase / 
RewriteCond %{QUERY_STRING} ^newsid=([0-9]){1,6}(.*)$
RewriteRule (.*) parameter.php\?newsid=%1 [R=301,NC,L]

Других вариантов нет.

18

Re: Исправление битых url в DLE 9.7 (Для ЧПУ 1 и 2 типа)

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

RewriteEngine On
RewriteBase /
RewriteRule ^(.*)&post=(.*)$ $1 [R=301,L]

Я заменил последнюю строчку на те варианты, которые вы мне подсказали. Я правильно сделал? Или надо было последнюю, третью строчку оставить и попробовать добавить, те два варианта по очереди?
Спасибо за понимание smile

19

Re: Исправление битых url в DLE 9.7 (Для ЧПУ 1 и 2 типа)

MisterNet, Можно было, как я и писал, после RewriteEngine On все добавить. Но это не важно, оно все равно не заработает, раз не заработало сразу... sad

20

Re: Исправление битых url в DLE 9.7 (Для ЧПУ 1 и 2 типа)

Жаль, конечно, что нет объяснений этому феномену. Но в любом случае, спасибо, Александр большое.  sad С уважением, Владимир.