Поиск по сайту:
Сущности не следует умножать без необходимости (Оккам).

Nginx. Перенаправление ошибки 404 на главную страницу в WordPress

29.03.2017
Nginx. Перенаправление ошибки 404 на главную страницу в WordPress

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

Это руководство требует Nginx и корневого доступа, так что вы можете изменить ваши виртуальные хосты Nginx.

Nginx. Перенаправление ошибки 404 на главную страницу в WordPress

Откройте виртуальный хост Nginx

sudo nano /etc/nginx/sites-available/andreyex.ru

 

Добавьте этот фрагмент в блоке сервера

# определить страницу ошибки
error_page 404 = @notfound;

# Адрес страницы ошибки 301 для редиректа
location @notfound {
    return 301 /;
}

 

Если вы не хотите делать 301 постоянную переадресацию, вы можете в место этого использовать 302 (временный редирект)

# определить страницу ошибки
error_page 404 = @notfound;

# адрес страницы ошибки 302 для перенаправления
location @notfound {
    return 302 /;
}

 

В РНР блоке установить fastcgi_intercept_errors в on

В качестве альтернативы вы можете поместить его в файл nginx.conf в блок http { block

location ~ \.php$ {
    include /etc/nginx/fastcgi_params;
    # перехват ошибки 404 для редиректа
    fastcgi_intercept_errors on;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

 

Для наглядности здесь приведен пример виртуального хоста в Nginx для WordPress с указанными выше добавками

server {
    listen 80;
    server_name andreyex.ru;

    root /var/www/nginx/andreyex.ru;
    index index.php index.html;

    access_log /var/log/nginx/andreyex.ru.log;
    error_log /var/log/nginx/andreyex.ru.error.log;

    location / {
        try_files $uri $uri/ /index.php?$args /;
    }

    # определить страницу ошибки
    error_page 404 = @notfound;

    # расположение страницы ошибки для редиректа 301
    location @notfound {
        return 301 /;
    }

    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        # перехват ошибки 404 для редиректа
        fastcgi_intercept_errors on;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~ /\.ht {
        deny all;
    }

    location = /nginx.conf {
        deny all;
    }
}

 

Читать  Как установить несколько контейнеров Discourse на одном сервере

Проверьте ваш синтаксис виртуального хоста Nginx перед активацией

sudo nginx -t

 

Если ваш синтаксис был ОК, то перезагрузить службу Nginx

sudo service nginx reload

 

Это должно работать!

Nginx. Перенаправление ошибки 404 на главную страницу в WordPress

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
luciu

Спасибо большое)

Это может быть вам интересно


Рекомендуемое
Извлечение подсайтов на WordPress из мноузловой сети может быть трудной задачей,…

Спасибо!

Теперь редакторы в курсе.