Перейти к публикации

Переход с WP на DLE. Массовый редирект 5000 URL. Как?


Рекомендованные сообщения

Всем салют.. возникла следующая проблема:

  • имеем сайт на WP (5000 новостей)
  • ссылки на новости имеют вид http://site.ru/tains...ond-repack-rus/
  • в самом контенте тоже часто встречаются ссылки на релевантные внтуренние страницы

Начал переносить сайт на движок DLE (основная причина - нагрузка... при 5-10 000 униках - довольно мощный VPS просто "дымится" )....

  • перепробовав кучу вариантов переноса- остановился на граббере rss-graber.ru
  • перенос новостей проходит отлично.. при этом в БД формируется поле со старым (исходным) ЧПУ URL
    source_name|Скачать головоломки-игры||source_link|<a href="http://site.ru/tainstvennye-legendy-prizrak-opery-kollekcionnoe-izdanie-2011-playpond-repack-rus/" target="_blank">http://site.ru/tainstvennye-legendy-prizrak-opery-kollekcionnoe-izdanie-2011-playpond-repack-rus/</a>||source_name|Скачать головоломки-игры||source_link|http://site.ru/tainstvennye-legendy-prizrak-opery-kollekcionnoe-izdanie-2011-playpond-repack-rus/
Проблема следующая: каким наиболее удобным способом можно сделать массовый 301 редирект всех старых URL на новые, которые сформирует DLE? Я нашел один способ (через htaccess):
REWRITEENGINE On

REWRITECOND %{HTTP_HOST} ^www.site.ru [NC]

Redirect 301 /pobeg-s-grozovogo-ostrova-escape-from-thunder-island-proxozhdenie-igry-2011-big-finish-games-repack-eng/ http://site.ru/31-pobeg-s-grozovogo-ostrova-escape-from-thunder-island-prohozhdenie-igry-2011-big-finish-games-repack-eng.html

Он работает.. Но, если не ошибаюсь, то редирект 5000 URL через htaccess - вызовет неплохую нагрузку на сервер... (2400MHz, 3Gb RAM)...

Возможно есть другой, лучший способ?

P.S. Сайт не показываю, так как он еще на WP... по поводу лицензий- куплены 2 шт... (это информация для модераторов по поводу "хотите что-то спросить- покажите Ваш сайт и лицензии")...

bed0c886e4f2.png

Изменено пользователем stalk
Ссылка на сообщение
Поделиться на других сайтах

Ниче не понял... Если домен тот же, урлы после переноса одинаковые, то зачем редирект?! Если домен новый и урлы все остались те же, то просто редирект с домена на домен...

Ссылка на сообщение
Поделиться на других сайтах

Ниче не понял... Если домен тот же, урлы после переноса одинаковые, то зачем редирект?! Если домен новый и урлы все остались те же, то просто редирект с домена на домен...

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

Ссылка на сообщение
Поделиться на других сайтах

stalk,

вам нужно писать код PHP, который будет проверять URL, и делать редирект, универсального правила для .htaccess для всех URL не существует.

Ссылка на сообщение
Поделиться на других сайтах

я нашел такой вариант:

в index.php вставляем

if ( getenv(’REQUEST_URI’) == ‘/stranica-do-redirecta/‘ )
{
Header( “HTTP/1.1 301 Moved Permanently” );
Header( “Location: /stranica-posle-redirecta.html” );
exit;
}[/php]

но выдает ошибку 500...

Не подскажете, что неправильно?

[b]stalk[/b],

вам нужно писать код PHP, который будет проверять URL, и делать редирект, универсального правила для .htaccess для всех URL не существует.

Изменено пользователем stalk
Ссылка на сообщение
Поделиться на других сайтах

if( $_SERVER['REQUEST_URI'] == "/test.html" ) {

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

    header( "Location: http://google.com/" );

}

в index.php после require_once ROOT_DIR . '/engine/init.php';

Вы так хотите 5000 условий прописать? :)

Ссылка на сообщение
Поделиться на других сайтах

if( $_SERVER['REQUEST_URI'] == "/test.html" ) {

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

	header( "Location: http://google.com/" );

}

в index.php после require_once ROOT_DIR . '/engine/init.php';

Вы так хотите 5000 условий прописать? :)

а что делать.. не хочется теряять позиции сайта.. и трафик

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

*проверил - работает Ваш вариант...

Может у кого-то еще такая проблема и он решил ее другим способом?..

Изменено пользователем stalk
Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

Вернусь к теме..

прописал в .htaccess редиректы старых ЧПУ Вордпресса на новые ЧПУ DLE

но возникла проблема с дублями и поисковым трафиком..

старый УРЛ на вордпресе имел вид http://site.ru/tajny-otelya-odinokaya-mechta-proxozhdenie-igry/

новый УРЛ этой же новости на DLE имеет УРЛ http://site.ru/542-tayny-otelya-odinokaya-mechta-prohozhdenie-igry.html

В .htaccess я прописал (в самом конце.. после родных правил DLE):

# редирект старых URL

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

Redirect 301 /tajny-otelya-odinokaya-mechta-proxozhdenie-igry/ /542-tayny-otelya-odinokaya-mechta-prohozhdenie-igry.html

Редирект происходит, но при этом в адресной строке получается такой адрес http://site.ru/542-tayny-otelya-odinokaya-mechta-prohozhdenie-igry.html?do=cat&category=tajny-otelya-odinokaya-mechta-proxozhdenie-igry/

Естественно, это дубль.. и ничего хорошего в этом нет..

Как можно это побороть?

Уточню.. такой глюк- только при включенном типе УРЛ "Тип 1 - ссылки на полную новость будут иметь вид http://site.ru/id-имя новости.html"

Если включить второй тип (Тип 2 - ссылки на полную новость будут иметь вид http://site.ru/категория/подкатегория/id-имя новости.html) - то редиректит нормально...

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...