Здесь описаны два способа настройки редиректа для сайта на WordPress. Первый, добавить правило в .htaccess находящийся в корне сайта и второй средствами PHP.
Кроме этого, существуют довольно неплохие и действенные плагины, но это не наш путь.
Так как redirect 301 здесь не работает, необходимо использовать RewriteRule. Все правила для 301-го редиректа пишутся после строки RewriteBase /.
Например:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
# Переадресация со страницы "WordPress 301 редирект" на страницу "Контакты"
RewriteRule ^/wordpress-301-redirekt/$ /contacts/ [R=301,L]
# Также, можно написать полный путь для конечной страницы
RewriteRule ^/dobavit-klass-k-miniatyure-tovara-woocommerce/$ http://webreason.ru/contacts/ [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Достаточно несложно.
В достижении того же результата средствами PHP, поможет следующий хук:
// 301 Redireсt
add_action('template_redirect', function () {
// Переадресация со страницы WordPress 301 редирект
if (preg_match('#^/wordpress-301-redirekt/?$#i', $_SERVER['REQUEST_URI'])) {
// на страницу "Контакты"
wp_redirect('/contacts/', 301);
exit;
}
});
Работая с переадресацией, важно помнить, многие браузеры могут запоминать ее, а Firefox, так особенно любит это.
Как вариант, настраивая переадресацию проверять можно в режиме приватного просмотра. Иначе, возможно не увидеть результата и решить, что настройки не работают.