Перенаправление /page/xx/ если 404 - IIS/WordPress

Запуск WordPress (PHP/MySQL) на Windows Server 2012 R2/IIS.

После переноса моего блога с решения ASP.net на WordPress я настроил ряд перенаправлений IIS, чтобы сократить количество ошибок сканирования Google. Я оператор WordPress, а не разработчик, но у меня есть перенаправления, работающие с использованием перезаписи URL / регулярных выражений и т. Д. Я не совсем незнаком с концепциями.

Теперь я перешел на обновленную тему и т. д., но все еще на WordPress. Все в значительной степени нормально, но я получаю много ошибок сканирования 404 для страниц, которые больше не существуют из-за изменений в способе отображения архивов.

Например, /author/joe/page/150/ теперь 404s. Их много в многочисленных папках (/author/, /tag/ и т. д.).

Я не могу просто перенаправить /page/, поскольку (например) /author/joe/page/100/ является допустимой страницей.

Я хотел бы сказать: «Если */page/xxx = 404, то перенаправить на /page/» или что-то в этом роде, но я не понимаю, как действовать дальше.

Любая помощь?


person Kip Kniskern    schedule 01.02.2014    source источник


Ответы (1)


Вы можете добавить код в functions.php Hook в действие 'template_redirect'. См. документацию здесь.

Пример из ссылки с небольшой модификацией:

function my_page_template_redirect() {
    if( is_404() ) {
        $url = $_SERVER['REQUEST_URI'];
        $search = '/author/joe/page/';
        if ( strpos( $search, $url ) !== false ) {
            wp_redirect( home_url( '/page/' ), 301 ); // or w/e where you want to redirect
        }
        exit();
    }
}
add_action( 'template_redirect', 'my_page_template_redirect' );
person ViszinisA    schedule 02.02.2014