Началось с того, что на одном из сайтов на WordPress (не моем) потребовалось сменить тему и весь контент. URL страниц тоже изменились.В прежней теме url выглядели стандартно для WordPress, типа site.ru/?p=123, но после изменений этих страниц на сайте не осталось, а у новых страниц URL были уже ЧПУ. Проблема в том, что на старый сайт есть некоторое количество ссылок и терять их, отвечая 404 кодом ответа не хотелось. Было решено сделать 301 редирект со всех страниц типа ?p=123 на главную.
Понятно, надо использовать .htaccess. Но мои знания в этой области чуть больше чем никакие, поэтому пришлось курить форумы и бесчисленные примеры, среди которых нужного варианта не было. Но было чувство, что решается проблема довольно просто.
Путем научного тыка и применением небольшого количества логики был придуман вполне работоспособный вариант. Вот его, на память себе, я тут и показываю. Итак — 301 редирект на главную для WordPress:
RewriteCond %{QUERY_STRING} ^p=(.*)$ [NC]
RewriteRule $ /? [R=301,L]
У меня этот вариант благополучно работает и теперь входящие ссылки не будут потеряны.
Возможно тут есть какая-то ошибка, в тонкостях .htaccess я не силен, так что буду рад услышать поправки или исправления.
