Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы Перенос новостей с WP на DLE (.htaccess)

Перенос новостей с WP на DLE (.htaccess)


     02.10.2013    Общие вопросы, Общие вопросы по PHP, Хаки    2759

вопрос
Переношу статьи со старого сайта на WP, на DLE и возникла неприятная и непонятно как решаемая ситуация при прописывании редиректов в htaccess. Может Вы чем поможете?


Старые ссылки на посты были такого вида:
http://site.ru/super-statya/

Новые такого:
http://site.ru/1298-super-statya.html

Редиректы в htaccess прописываю по такому типу:
Redirect 301 /super-statya/ http://site.ru/1298-super-statya.html


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

http://site.ru/1298-super-statya.html?do=cat&category=super-statya/


Т.е. я так понимаю, происходит конфликт с правилами заданными для обработки категорий.

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.]+)/page/([0-9]+)(/?)+$ index.php?do=cat&category=$1&cstart=$2 [L]
RewriteRule ^([^.]+)/?$ index.php?do=cat&category=$1 [L]



Кто разбирается в htaccess, подскажите пожалуйста как решить эту проблему.

Ответил: Sander


Подобные редиректы должны находится в самом верху .htaccess файла, после строки
RewriteEngine On

Вот пример строки редиректа:
RewriteRule ^super-statya(/?)+$ /1298-super-statya.html [R=301,L]


Хотя я бы с ума сошел писать более 1000 редиректов вручную...

Комментарии пользователей (11)

ПафНутиЙ
1065

3396 | 2434

ПафНутиЙ - 2 октября 2013 19:32 - Админ

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

Каков вопрос - таков и ответ. Просто помните об этом.

YoYoYo
26 | 2

YoYoYo - 2 октября 2013 19:38 - Юзер

Здравствуйте! Пробовал вставлять в самый низ - не помогает.

YoYoYo
26 | 2

YoYoYo - 3 октября 2013 10:37 - Юзер

Неужели нет решения? Оставаться на ВП чтоли? =(

YoYoYo
26 | 2

YoYoYo - 3 октября 2013 12:47 - Юзер

Сейчас попробую, спасибо за ответ!

Хотя я бы с ума сошел писать более 1000 редиректов вручную...

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

Sander
1126

1637 | 1204

Sander - 3 октября 2013 12:58 - Эксперт

Я бы делал скриптом.
По умолчанию подобные урл-ки определяются движком как категория.
Вот после обработчика определения $category_id ставим проверку:
if($dle_module=='cat' AND !$category_id AND $category){
// код
}

Вместо кода проверка на нахождение новости с заданным именем категории.
$check_row = $db->super_query("SELCT id,date,category,alt_name FROM dle_post WHERE alt_name='".$category."'");
if($check_row['id']){
// определяем ссылку на новость и делаем 301 редирект.
}

SanDev.pro - мой блог.

ICQ: 404-037-556
Skype: Sander8804

YoYoYo
26 | 2

YoYoYo - 3 октября 2013 13:05 - Юзер

А в каком файле происходит обработка этого определения? Куда это все вставлять?

YoYoYo
26 | 2

YoYoYo - 3 октября 2013 13:07 - Юзер

И я так понимаю это неполный код? тут еще нужно дописывать как минимум сам скрипт редиректа?

YoYoYo
26 | 2

YoYoYo - 3 октября 2013 12:52 - Юзер

Не-а, не помогло =(

Я в принципе изначально в самый верх прописывал редиректы, думал может тут фишка с "^" и т.п. прокатит - не прокатила. Все равно добавляется к урлу эта строка при редиректе.

?do=cat&category=super-statya/

PS: Блин, не хочу на WP =(

Sander
1126

1637 | 1204

Sander - 3 октября 2013 14:48 - Эксперт

Редирект повторно перепроверил на другом сайте. все работает.
cook.sandev.pro/super-statya/

Насчет кода - да, он не полный. И теоретически возможно, что рабочий.

SanDev.pro - мой блог.

ICQ: 404-037-556
Skype: Sander8804

YoYoYo
26 | 2

YoYoYo - 3 октября 2013 16:00 - Юзер

Sander, хм.. Это очень странно, сейчас перепроверю у себя. Возможно это связано с конфигом ЧПУ. У Вас он формируется вместе с категорией.

YoYoYo
26 | 2

YoYoYo - 3 октября 2013 16:10 - Юзер

Действительно работает! Ума не приложу, почему утром этот же код не работал..

Спасибо большое!

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы