stalk 3 Опубликовано: 11 марта 2012 Рассказать Опубликовано: 11 марта 2012 (изменено) Всем салют.. возникла следующая проблема:имеем сайт на WP (5000 новостей)ссылки на новости имеют вид http://site.ru/tains...ond-repack-rus/в самом контенте тоже часто встречаются ссылки на релевантные внтуренние страницы Начал переносить сайт на движок DLE (основная причина - нагрузка... при 5-10 000 униках - довольно мощный VPS просто "дымится" )....перепробовав кучу вариантов переноса- остановился на граббере rss-graber.ruперенос новостей проходит отлично.. при этом в БД формируется поле со старым (исходным) ЧПУ URLsource_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 шт... (это информация для модераторов по поводу "хотите что-то спросить- покажите Ваш сайт и лицензии")... Изменено 11 марта 2012 пользователем stalk Цитата Ссылка на сообщение Поделиться на других сайтах
ower_xz 117 Опубликовано: 11 марта 2012 Рассказать Опубликовано: 11 марта 2012 Ниче не понял... Если домен тот же, урлы после переноса одинаковые, то зачем редирект?! Если домен новый и урлы все остались те же, то просто редирект с домена на домен... Цитата Ссылка на сообщение Поделиться на других сайтах
alexmurphy 45 Опубликовано: 11 марта 2012 Рассказать Опубликовано: 11 марта 2012 Ниче не понял... Если домен тот же, урлы после переноса одинаковые, то зачем редирект?! Если домен новый и урлы все остались те же, то просто редирект с домена на домен... Посмотрите пример урл, который приведен выше и сравните с урл в дле и сразу все поймете... Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 072 Опубликовано: 11 марта 2012 Рассказать Опубликовано: 11 марта 2012 stalk, вам нужно писать код PHP, который будет проверять URL, и делать редирект, универсального правила для .htaccess для всех URL не существует. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
stalk 3 Опубликовано: 11 марта 2012 Рассказать Опубликовано: 11 марта 2012 (изменено) Автор я нашел такой вариант: в 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 не существует. Изменено 11 марта 2012 пользователем stalk Цитата Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1 161 Опубликовано: 11 марта 2012 Рассказать Опубликовано: 11 марта 2012 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 условий прописать? 1 Цитата Ссылка на сообщение Поделиться на других сайтах
stalk 3 Опубликовано: 11 марта 2012 Рассказать Опубликовано: 11 марта 2012 (изменено) Автор 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).. и потом автоподстановкой... *проверил - работает Ваш вариант... Может у кого-то еще такая проблема и он решил ее другим способом?.. Изменено 11 марта 2012 пользователем stalk Цитата Ссылка на сообщение Поделиться на других сайтах
stalk 3 Опубликовано: 22 марта 2012 Рассказать Опубликовано: 22 марта 2012 Автор Вернусь к теме.. прописал в .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) - то редиректит нормально... Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.