15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати
01.11.2024

Як перенаправити помилку 404: Повний посібник для Apache, Nginx і PHP

Помилка 404 — одна з найпоширеніших і найшкідливіших проблем, з якою може зіткнутися веб-сайт. Коли відвідувач потрапляє на сторінку, яка більше не існує, він стикається з глухим кутом. Такий негативний досвід відганяє користувачів, збільшує показник відскоку та поступово знижує ваш рейтинг у пошукових системах.

Хороша новина? За допомогою правильної стратегії перенаправлення ви можете перехопити ці помилки 404, спрямувати користувачів на релевантний контент і захистити як ваш трафік, так і SEO. Цей комплексний посібник охоплює всі основні методи перенаправлення помилок 404, включаючи ErrorDocument Apache, блоки сервера Nginx і рішення на основі PHP — з реальними прикладами конфігурації, які ви можете впровадити сьогодні.

Що таке помилка 404 і чому вона важлива?

Помилка 404 Not Found — це код стану HTTP, який сервер повертає, коли не може знайти запитаний ресурс. Це відбувається з кількох причин:

  • Сторінка була видалена або перенесена без перенаправлення
  • Користувач перейшов за розірваним або застарілим зовнішнім посиланням
  • URL був неправильно введений або переструктурований під час міграції сайту
  • Внутрішні посилання не були оновлені після змін контенту

З точки зору користувацького досвіду натрапити на сторінку 404 — це неприємно. З точки зору SEO це сигналізує пошуковим системам про структурні проблеми вашого сайту. Бюджет на сканування витрачається впустощу, втрачається цінність посилань, а рейтинги можуть постраждати — особливо якщо авторитетні зворотні посилання вказують на неробочі URL-адреси.

Впровадження правильних перенаправлень 404 — це не факультативне обслуговування. Це основна частина управління здоровим, добре оптимізованим веб-сайтом.

Метод 1: Перенаправлення помилок 404 за допомогою .htaccess (сервери Apache)

Якщо ваш веб-сайт розміщений на веб-сервері Apache, файл .htaccess — це ваш основний інструмент для управління перенаправленнями на рівні сервера. Цей метод швидкий, надійний і не вимагає знань програмування.

Крок 1: Знайдіть або створіть файл .htaccess

Файл .htaccess знаходиться в кореневому каталозі вашого веб-сайту (зазвичай /public_html або /www). Якщо його ще немає, створіть новий текстовий файл і назвіть його точно .htaccess — включаючи крапку на початку.

> Порада: Якщо ви керуєте своїм хостингом через панель керування, ви можете знайти та редагувати цей файл безпосередньо в менеджері файлів. Користувачі VPS з cPanel можуть отримати доступ до нього через вбудований менеджер файлів у інтерфейсі cPanel.

Крок 2: Встановіть користувацький документ помилки 404

Додайте наступний рядок до вашого файлу .htaccess, щоб обслуговувати користувацьку HTML-сторінку кожного разу, коли виникає помилка 404:

ErrorDocument 404 /404.html

Замініть /404.html на фактичний шлях до вашої користувацької сторінки помилки. Це вказує Apache обслуговувати цю сторінку замість відповіді про помилку сервера за замовчуванням.

Крок 3: Перенаправте всі помилки 404 на конкретну URL-адресу

Якщо ви хочете перенаправити користувачів на робочу сторінку — замість того, щоб просто показати користувацьку помилку — використовуйте модуль mod_rewrite Apache:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ https://example.com/home [L,R=301]

Що це робить:

  • RewriteEngine On — активує механізм переписування
  • RewriteCond %{REQUEST_FILENAME} !-f — перевіряє, що запитаний файл не існує фізично
  • RewriteRule ^(.*)$ https://example.com/home [L,R=301] — перенаправляє всі запити неіснуючих файлів на вибрану URL-адресу з постійним перенаправленням (301)

> Важливо: Завжди використовуйте 301 перенаправлення (постійне) замість 302 (тимчасове) при перенаправленні розірваних URL-адрес. Перенаправлення 301 передає цінність посилання на сторінку призначення і повідомляє пошуковим системам, що переміщення постійне.

Крок 4: Перенаправте конкретні неробочі URL-адреси

Для точного перенаправлення — перенаправлення окремих розірваних URL-адрес замість усіх 404 — додайте конкретні правила перенаправлення:

Redirect 301 /old-page.html https://example.com/new-page.html
Redirect 301 /another-old-page.html https://example.com/another-new-page.html

Цей підхід ідеальний після міграції сайту або при реструктуризації ієрархії URL-адрес.

Метод 2: Налаштування перенаправлень 404 в Nginx

Якщо ваш сервер працює на Nginx, конфігурація перенаправлення обробляється всередині блоку сервера файлу конфігурації вашого сайту, а не в файлі .htaccess.

Крок 1: Відкрийте файл конфігурації Nginx

Файли конфігурації Nginx зазвичай розташовуються за адресою:

  • /etc/nginx/nginx.conf
  • /etc/nginx/sites-available/your-domain.com

Відкрийте відповідний файл текстовим редактором:

sudo nano /etc/nginx/sites-available/your-domain.com

Крок 2: Встановіть користувацьку сторінку помилки 404

Всередині вашого блоку server додайте наступну директиву:

error_page 404 /404.html;

Це вказує Nginx обслуговувати вашу користувацьку HTML-сторінку кожного разу, коли виникає помилка 404.

Крок 3: Перенаправте помилки 404 на іншу URL-адресу

Щоб перенаправити користувачів на робочу сторінку при виникненні помилки 404, використовуйте функцію названої локації Nginx:

error_page 404 =301 @notfound;
location @notfound {
return 301 https://example.com/home;
}

Як це працює:

  • try_files $uri $uri/ @notfound; — Nginx спочатку намагається обслуговувати запитаний файл або каталог
  • Якщо жодного не існує, він переходить до названої локації @notfound
  • Названа локація видає 301 перенаправлення на вказану URL-адресу призначення

Крок 4: Протестуйте та перезавантажте Nginx

Після редагування конфігурації завжди протестуйте синтаксис перед перезавантаженням:

sudo nginx -t

Якщо тест пройде з повідомленням “successful”, перезавантажте Nginx, щоб застосувати ваші зміни:

sudo systemctl reload nginx

Ніколи не пропускайте тест синтаксису — неправильно налаштований файл Nginx може вивести весь ваш сайт з ладу.

> Примітка: Управління конфігураціями Nginx є простим, коли у вас є повний root-доступ до вашого сервера. VPS Hosting AlexHost і Dedicated Servers дають вам повний контроль над вашим серверним середовищем, що робить конфігурації подібні до цих швидкими та безпроблемними.

Метод 3: Обробка перенаправлень 404 за допомогою PHP

Для сайтів, які працюють на PHP, ви можете обробляти перенаправлення 404 програмно, використовуючи користувацьку сторінку помилки PHP. Цей метод пропонує найбільшу гнучкість — ви можете реєструвати помилки, відображати динамічний контент або застосовувати умовну логіку перенаправлення.

Крок 1: Створіть користувацький файл 404 PHP

Створіть файл з назвою 404.php у вашому кореневому каталозі з наступним вмістом:

<?php
header(“HTTP/1.1 404 Not Found”);
header(“Status: 404 Not Found”);
header(“Location: https://example.com/home”, true, 301);
exit;
?>

Для більш зручного підходу, який показує корисну сторінку замість негайного перенаправлення:

<?php
header(“HTTP/1.1 404 Not Found”);
header(“Status: 404 Not Found”);
?>
<!DOCTYPE html>
<html>
<head>
<title>Сторінка не знайдена</title>
</head>
<body>
<h1>Помилка 404 – Сторінка не знайдена</h1>
<p>На жаль, сторінка, яку ви шукаєте, не існує.</p>
<a href=”https://example.com”>Повернутися на головну</a>
</body>
</html>

Крок 2: Вкажіть вашому серверу на користувацький файл PHP

Для Apache додайте до вашого .htaccess:

ErrorDocument 404 /404.php

Для Nginx додайте до вашого блоку server:

error_page 404 /404.php;
location = /404.php {
internal;
}

Директива internal гарантує, що сторінка помилки може бути доступна тільки внутрішньо для Nginx — не безпосередньо користувачами, які вводять URL-адресу.

Метод 4: Рішення для перенаправлення 404, специфічні для WordPress

Якщо ваш сайт працює на WordPress, у вас є додаткові опції, крім конфігурації на рівні сервера.

Використання плагіна

Плагіни, такі як Redirection, Rank Math SEO або Yoast SEO, включають вбудований моніторинг 404 і управління перенаправленнями. Ці інструменти дозволяють вам:

  • Переглядати всі помилки 404 на панелі керування
  • Встановлювати перенаправлення без дотику до файлів сервера
  • Автоматично пропонувати перенаправлення на основі подібних існуючих URL-адрес

Редагування functions.php

Для розробників ви можете додати логіку перенаправлення безпосередньо до файлу functions.php вашої теми:

<?php
add_action( ‘template_redirect’, function() {
if ( is_404() ) {
wp_redirect( home_url( ‘/’ ), 301 );
exit;
}
} );
?>

Це перенаправляє всі помилки 404 на домашню сторінку зі статусом 301.

Тестування ваших перенаправлень 404

Після впровадження будь-якого методу перенаправлення необхідне ретельне тестування. Ось як перевірити, що все працює правильно:

Ручне тестування в браузері

  1. Перейдіть на URL-адресу на вашому сайті, який ви знаєте, не існує (наприклад, https://example.com/this-page-does-not-exist)
  2. Підтвердіть, що вас перенаправлено на правильне місце призначення
  3. Перевірте адресний рядок браузера, щоб переконатися, що URL-адреса оновилася

Використання curl для перевірки статусу HTTP

curl -I https://example.com/old-page.html

Шукайте HTTP/1.1 301 Moved Permanently у відповіді заголовків, за яким слідує заголовок Location, що вказує на вашу URL-адресу призначення.

Онлайн-інструменти

Використовуйте інструменти, такі як:

  • Google Search Console — визначає помилки 404, які Google зустрів під час сканування вашого сайту
  • Screaming Frog SEO Spider — сканує ваш сайт і позначає розірвані посилання
  • Redirect Checker (redirect-checker.org) — перевіряє ланцюги перенаправлення та кінцеві місця призначення

Найкращі практики управління помилками 404

1. Розробіть корисну користувацьку сторінку 404

Навіть якщо ви перенаправляєте більшість помилок 404, деякі неминуче проскочать. Добре розроблена користувацька сторінка 404 повинна включати:

  • Чітке, дружелюбне повідомлення, що пояснює, що сторінка не знайдена
  • Панель пошуку, щоб користувачі могли знайти те, що вони шукають
  • Посилання на ваші найпопулярніші сторінки або категорії
  • Меню навігації вашого сайту
  • Посилання назад на домашню сторінку

2. Використовуйте 301 перенаправлення — не 302

Завжди використовуйте 301 (постійне) перенаправлення для видалених сторінок. Перенаправлення 302 (тимчасове) не передає SEO-цінність і повідомляє пошуковим системам, що оригінальна URL-адреса може повернутися. Використовуйте 302 тільки коли сторінка дійсно тимчасово недоступна.

3. Уникайте ланцюгів перенаправлення

Ланцюг перенаправлення виникає, коли URL A перенаправляє на URL B, який перенаправляє на URL C. Кожен стрибок у ланцюзі зменшує цінність посилання і сповільнює час завантаження сторінки. Завжди перенаправляйте безпосередньо на кінцеву URL-адресу призначення.

4. Постійно моніторьте помилки 404

Помилки 404 — це не одноразова виправка. Нові розірвані посилання з’являються постійно — від зовнішніх сайтів, які змінюють свої URL-адреси, від ваших власних оновлень контен

15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати