Опубликовано: 21 апреля 201411 г Возможно ли сделать переадресацию со старых ссылок на новые?Вот старая ссылка - pristavki.su/index.php?topic=1424.0Новая ссылка - pristavki.su/index.php/topic/925-proshivka-ps3-versiia-proshivki-411-kak-ponizit-do-355/Когда переходил с vb на smf у cms в темах было общий id.Там 301 было сделать относительно не сложно и была логикаRewriteCond %{QUERY_STRING} ^t=([0-9]+).*$ RewriteRule ^showthread.php$ /index.php?topic=%1.0 [R=301,L] RewriteCond %{QUERY_STRING} ^f=([0-9]+).*$ RewriteRule ^forumdisplay.php$ /index.php?board=%1.0 [R=301,L] Возможно ли в моей ситуации?
Опубликовано: 21 апреля 201411 г Возможно только "двойной редирект", так как при включенном чпу обычные ссылки редиректятся на чпу'шные. В таком случае в htaccess можно сделать редирект на обычные, а форум сделает реирект с обычных на чпу. Добавить после RewriteEngine On RewriteCond %{QUERY_STRING} ^topic=(\d+)\.(?:0|msg) RewriteRule ^index\.php /index.php?showtopic=%1 [R=301,L] RewriteCond %{QUERY_STRING} ^topic=(\d+)\.(\d+) RewriteRule ^index\.php /index.php?showtopic=%1&st=%2 [R=301,L] RewriteCond %{QUERY_STRING} ^board=(\d+)\.0 RewriteRule ^index\.php /index.php?showforum=%1 [R=301,L] RewriteCond %{QUERY_STRING} ^board=(\d+)\.(\d+) RewriteRule ^index\.php /index.php?showforum=%1&st=%2 [R=301,L] RewriteCond %{QUERY_STRING} ^action=profile;u=(\d+) RewriteRule ^index\.php /index.php?showuser=%1 [R=301,L] или (для тех кто использует чпу) RewriteCond %{QUERY_STRING} ^topic=(\d+)\.(?:(\d+)|msg) RewriteRule ^index\.php /index.php?showtopic=%1&st=%2 [R=301,L] RewriteCond %{QUERY_STRING} ^board=(\d+)\.(\d+) RewriteRule ^index\.php /index.php?showforum=%1&st=%2 [R=301,L] RewriteCond %{QUERY_STRING} ^action=profile;u=(\d+) RewriteRule ^index\.php /index.php?showuser=%1 [R=301,L]
Опубликовано: 21 апреля 201411 г Автор Спасибо что отозвались!Редирект происходит но не на те темы.Допустим тема со старым id 1424, редиректится на новые темы с 1424. А id не соответствует.Получается сработало на половину :)
Опубликовано: 21 апреля 201411 г А id не соответствует.Ну это уже другой вопрос. Когда делали конвертацию темам/форумам/пользователям надо было поставить галочку Empty local data?, чтобы при конвертирования сохранить старые ид. По идее в бд есть связь старые-новые ид, но для этого нужно уже писать костыль на php. Попробовал второй код. Тоже редирект по id получаетсяВторой код упрощенная форма первого.
Опубликовано: 21 апреля 201411 г Автор Блин, вот сколько нюансов о которых и не подумаешь. :( id уже не изменить?
Опубликовано: 21 апреля 201411 г id уже не изменить?Нет. Но в бд есть сопоставление старые-новые ид, можно написать костыль который по старому ид получит новый, а запросы с старых ссылок с помощью htaccess перенаправить на этот обработчик. ПСХотя нет, похоже id все равно не сохраняются, даже если очистить существующие данные в ипб.
Опубликовано: 21 апреля 201411 г Автор Не. Такого не надо. Пусть будет встрясочка сайту. Мож оно и к лучшему. Конечно упаду но думаю что поднимусь.siv1987, спасибо огромное. Вы хороший специалист!
Опубликовано: 21 апреля 201411 г Собственно сам костыль. 1. Загрузить файл redir.php в корень форума2. Добавить в .htaccess (после RewriteEngine On) RewriteCond %{QUERY_STRING} ^topic=(\d+)\.(?:(\d+)|msg) RewriteRule ^index\.php /redir.php?showtopic=%1&st=%2 [R=301,L] RewriteCond %{QUERY_STRING} ^board=(\d+)\.(\d+) RewriteRule ^index\.php /redir.php?showforum=%1&st=%2 [R=301,L] RewriteCond %{QUERY_STRING} ^action=profile;u=(\d+) RewriteRule ^index\.php /redir.php?showuser=%1 [R=301,L] redir.php
Опубликовано: 22 апреля 201411 г Автор Это сильно загрузит базу? Вообще есть какие либо последствия для SEO или ещё чего? :)Вы невероятно круты )) Знаете действительно многое.
Опубликовано: 22 апреля 201411 г Автор К сожалению редирект не случился. :D Всё точно сделал как вы сказали сэр. :)
Опубликовано: 22 апреля 201411 г Для сео есть - склейка старых урлов с новыми. Не говоря уже о пользе для пользователей, которые перешли по старом ссылкам. Проверял, вроде работало. Возможная причина что не правильно определился ид сессии которой был сконвертирован форум. Так как их там можно создавать несколько приходится ставить условие для поиска конкретной последней завершенной сессии.
Опубликовано: 22 апреля 201411 г Автор Редирект был не ошибочный а просто на главную. Обычно отображается главная но ссылка по переходу. Мож это что значит.
Опубликовано: 23 апреля 201411 г Редирект был не ошибочный а просто на главную.Если редиректит на главную значит - либо не правильно определяется ид сессии конвертации, либо в базе не найдено записи для этого ид. Надеюсь что после завершения конвертации вы сессию не удалили. Файл поправил, но если в бд больше чем одной сессии (Manage Conversions), придется вручную задать ид аппликации в $app = '';Именно id, который можно узнать из таблицы ibf_conv_apps поле app_id
Опубликовано: 23 апреля 201411 г Автор Ссылки открывает с PHPSESSID но всё таке шлёт на главную. Видимо не определяет id как вы и говорите. После миграции ничего не делал.Это всё конечно не критично. Хочется чтоб люди попадали на то что ищут, но подожду индексации.Спасибо! :)
Возможно ли сделать переадресацию со старых ссылок на новые?
Вот старая ссылка - pristavki.su/index.php?topic=1424.0
Новая ссылка - pristavki.su/index.php/topic/925-proshivka-ps3-versiia-proshivki-411-kak-ponizit-do-355/
Когда переходил с vb на smf у cms в темах было общий id.
Там 301 было сделать относительно не сложно и была логика
RewriteCond %{QUERY_STRING} ^t=([0-9]+).*$ RewriteRule ^showthread.php$ /index.php?topic=%1.0 [R=301,L] RewriteCond %{QUERY_STRING} ^f=([0-9]+).*$ RewriteRule ^forumdisplay.php$ /index.php?board=%1.0 [R=301,L]Возможно ли в моей ситуации?