Дублируются страницы в wordpress, как это исправить?

При заходе на страницу вида domain.ru/page1/1 выводится страница domain.ru/page1.
Так же происходит когда забиваешь domain.ru/page1/123 , domain.ru/page1/123123 , domain.ru/page1/9999 (вообщем когда забиваются цифры)
Подскажите как сделать так (хотя-бы куда смотреть), что бы в такой ситуации выводилась 404 ошибка, либо, в крайнем случае редирект на основную.
  • Вопрос задан
  • 329 просмотров
Пригласить эксперта
Ответы на вопрос 2
sidorenkoda
@sidorenkoda
Программист, верстальщик, руководитель проектов
Если ты беспокоишься о SEO, то проще пропиши rel canonical и не волнуйся о том, что еще допишут к твоим уралм =)
seo-for-ucoz.com/blog/atribut_rel_canonical_chto_t...
Ответ написан
Комментировать
@TraiDeR
Есть решение этой проблемы. Вот тут давал ответ

В целом, нужно просто в файл functions.php вашей темы вставить код:
global $posts, $numpages;

$request_uri = $_SERVER['REQUEST_URI'];

$result = preg_match('%\/(\d)+(\/)?$%', $request_uri, $matches);

$ordinal = $result ? intval($matches[1]) : FALSE;

if(is_numeric($ordinal)) {

    // a numbered page was requested: validate it
    // look-ahead: initialises the global $numpages

    setup_postdata($posts[0]); // yes, hack

    $redirect_to = ($ordinal < 2) ? '/': (($ordinal > $numpages) ? "/$numpages" : FALSE);

    if(is_string($redirect_to)) {

    // we got us a phantom
    $redirect_url = get_option('home') . preg_replace('%'.$matches[0].'%', $redirect_to, $request_uri);

    // if page = 0 or 1, redirect permanently
    if($ordinal < 2) {
        header($_SERVER['SERVER_PROTOCOL'] . ' 301 Moved Permanently');
    } else {
        header($_SERVER['SERVER_PROTOCOL'] . ' 302 Found');
    }

    header("Location: $redirect_url");
    exit();

    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы