2016-09-06 4 views
0

Есть некоторые проблемы после изменения CMS в Wordpress. Мой старый url-s выглядит как http://example.com/news/sport/12123, где 12123 сообщение ID. Теперь мой url-s выглядит как http://example.com/12/12/2016/post-name. После миграции в WP я сохраняю в своем прежнем почтовом ящике DB как настраиваемое поле. Теперь мне нужно перенаправить всех пользователей, которые приходят на мой сайт по старым url на новый url. Для этого мне нужно в .htaccess добавить 301 редирект некоторые, как это:Как создать правило в .htaccess для перенаправления

Redirect 301 /news/sport/12123 /redirectold.php?oldid=12123 

Где redirectold.php получить из БД нового адреса старого ID из URL. Если я открываю напрямую http://example.com/redirectold.php?oldid=12123, все работает нормально, но я не знаю, как перенаправить на /redirectold.php?oldid= все старые ссылки и получить старый идентификатор сообщения из старого url и поместить его после /redirectold.php?oldid= в .htaccess ,

E.g. если открыта старая ссылка http://example.com/news/sport/12123 нужно перенаправить его на http://example.com/redirectold.php?oldid=12123 через .htaccess

+0

Если я пытаюсь добавить в .htaccess строку: 'Перенаправление 301/Новости/Спорт/12123 /redirectold.php «oldid = 12123' работает хорошо, если попробуйте:« Переадресовать 301/news/sport/([0-9] +) /redirectold.php? oldid = $ 1' - nothing "Страница не найдена" – KingStakh

+0

Попробуйте 'RedirectMatch' вместо «Перенаправления»? – Julqas

ответ

2

Попробуйте это,

RewriteEngine on 
RewriteRule ^/news/sport/([0-9]+)$ /redirectold.php?oldid=$1 [R=301,L] 
+0

Спасибо за ответ, но «Страница не найдена» – KingStakh

+0

Отлично! Теперь это работает! Я использую 'RewriteBase /' и удаляю '/' перед новостями, и это работает. Спасибо! – KingStakh

Смежные вопросы