15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij
01.11.2024

Jak przekierować błąd 404: Kompletny przewodnik dla Apache, Nginx i PHP

Błąd 404 to jeden z najczęstszych — i najbardziej szkodliwych — problemów, z którymi może się zmierzyć witryna internetowa. Gdy odwiedzający trafia na stronę, która już nie istnieje, napotyka ślepą uliczkę. To złe doświadczenie odpędza użytkowników, zwiększa współczynnik odrzuceń i powoli podkopuje Twoje rankingi w wyszukiwarkach.

Dobra wiadomość? Dzięki właściwej strategii przekierowań możesz przechwycić te błędy 404, poprowadzić użytkowników do odpowiedniej treści i chronić zarówno Twój ruch, jak i SEO. Ten kompleksowy przewodnik obejmuje każdą główną metodę przekierowywania błędów 404, w tym Apache .htaccess, bloki serwera Nginx i rozwiązania oparte na PHP — z rzeczywistymi przykładami konfiguracji, które możesz wdrożyć dzisiaj.

Co to jest błąd 404 i dlaczego ma znaczenie?

Błąd 404 Not Found to kod stanu HTTP zwracany przez serwer, gdy nie może zlokalizować żądanego zasobu. Dzieje się to z kilku powodów:

  • Strona została usunięta lub przeniesiona bez przekierowania
  • Użytkownik kliknął na uszkodzony lub nieaktualny link zewnętrzny
  • Adres URL został wpisany błędnie lub zmieniony podczas migracji witryny
  • Linki wewnętrzne nie zostały zaktualizowane po zmianach treści

Z perspektywy doświadczenia użytkownika trafienie na stronę 404 jest frustrujące. Z perspektywy SEO sygnalizuje wyszukiwarkom, że Twoja witryna ma problemy strukturalne. Budżet crawlowania jest marnowany, traci się wartość linków, a rankingi mogą ucierpieć — szczególnie jeśli linki zwrotne o wysokim autorytecie wskazują na martwe adresy URL.

Wdrożenie prawidłowych przekierowań 404 to nie opcjonalna konserwacja. To kluczowa część prowadzenia zdrowej, dobrze zoptymalizowanej witryny.

Metoda 1: Przekierowywanie błędów 404 za pomocą .htaccess (serwery Apache)

Jeśli Twoja witryna jest hostowana na serwerze Apache, plik .htaccess to Twoje główne narzędzie do zarządzania przekierowaniami na poziomie serwera. Ta metoda jest szybka, niezawodna i nie wymaga wiedzy programistycznej.

Krok 1: Zlokalizuj lub utwórz plik .htaccess

Plik .htaccess znajduje się w katalogu głównym Twojej witryny (zwykle /public_html/ lub /www/). Jeśli jeszcze nie istnieje, utwórz nowy plik tekstowy i nazwij go dokładnie .htaccess — łącznie z kropką na początku.

> Wskazówka: Jeśli zarządzasz środowiskiem hostingu za pośrednictwem panelu sterowania, możesz znaleźć i edytować ten plik bezpośrednio w menedżerze plików. Użytkownicy VPS z cPanel mogą uzyskać do niego dostęp za pośrednictwem wbudowanego Menedżera plików w interfejsie cPanel.

Krok 2: Ustaw niestandardowy dokument błędu 404

Dodaj następujący wiersz do pliku .htaccess, aby wyświetlić niestandardową stronę HTML za każdym razem, gdy pojawi się błąd 404:

ErrorDocument 404 /custom-404-page.html

Zastąp /errors/404.html rzeczywistą ścieżką do Twojej niestandardowej strony błędu. To mówi Apache, aby wyświetlił tę stronę zamiast domyślnej odpowiedzi błędu serwera.

Krok 3: Przekieruj wszystkie błędy 404 na określony adres URL

Jeśli chcesz przekierować użytkowników na działającą stronę — zamiast tylko pokazywać błąd — użyj modułu mod_rewrite Apache:

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

Co to robi:

  • RewriteEngine On — aktywuje silnik przepisywania
  • RewriteCond %{REQUEST_FILENAME} !-f — sprawdza, czy żądany plik fizycznie nie istnieje
  • RewriteRule ^(.*)$ https://example.com/404-page [R=301,L] — przekierowuje wszystkie żądania nieistniejących plików na wybrany adres URL za pomocą trwałego (301) przekierowania

> Ważne: Zawsze używaj przekierowań 301 (trwałych) zamiast 302 (tymczasowych) podczas przekierowywania uszkodzonych adresów URL. Przekierowanie 301 przekazuje wartość linku na stronę docelową i mówi wyszukiwarkom, że zmiana jest trwała.

Krok 4: Przekieruj określone martwe adresy URL

Aby uzyskać precyzję chirurgiczną — przekierowując poszczególne uszkodzone adresy URL zamiast wszystkich 404 — dodaj określone reguły przekierowania:

Redirect 301 /old-page https://yourdomain.com/new-page
Redirect 301 /deleted-article https://yourdomain.com/related-article

To podejście jest idealne po migracji witryny lub podczas restrukturyzacji hierarchii adresów URL.

Metoda 2: Konfigurowanie przekierowań 404 w Nginx

Jeśli Twój serwer uruchamia Nginx, konfiguracja przekierowania jest obsługiwana wewnątrz bloku serwera pliku konfiguracyjnego Twojej witryny, a nie w pliku .htaccess.

Krok 1: Otwórz plik konfiguracyjny Nginx

Pliki konfiguracyjne Nginx zwykle znajdują się w:

  • /etc/nginx/sites-available/
  • /etc/nginx/conf.d/

Otwórz odpowiedni plik edytorem tekstu:

sudo nano /etc/nginx/sites-available/yourdomain.conf

Krok 2: Ustaw niestandardową stronę błędu 404

Wewnątrz bloku server dodaj następującą dyrektywę:

error_page 404 /custom-404-page.html;

To instruuje Nginx, aby wyświetlił Twoją niestandardową stronę HTML za każdym razem, gdy zostanie wyzwolony błąd 404.

Krok 3: Przekieruj błędy 404 na inny adres URL

Aby przekierować użytkowników na działającą stronę, gdy pojawi się błąd 404, użyj funkcji nazwanej lokalizacji Nginx:

server {
    listen 80;
    server_name yourdomain.com;

    location / {
        try_files $uri $uri/ @custom_redirect;
    }

    location @custom_redirect {
        return 301 https://yourdomain.com/new-page;
    }
}

Jak to działa:

  • try_files $uri $uri/ @notfound; — Nginx najpierw próbuje wyświetlić żądany plik lub katalog
  • Jeśli żaden nie istnieje, przechodzi do nazwanej lokalizacji @notfound
  • Nazwana lokalizacja wydaje przekierowanie 301 na określony adres URL docelowy

Krok 4: Przetestuj i przeładuj Nginx

Po edycji konfiguracji zawsze testuj błędy składni przed przeładowaniem:

sudo nginx -t

Jeśli test przejdzie z wynikiem successful, przeładuj Nginx, aby zastosować zmiany:

sudo systemctl reload nginx

Nigdy nie pomijaj testu składni — błędnie skonfigurowany plik Nginx może wyłączyć całą Twoją witrynę.

> Uwaga: Zarządzanie konfiguracjami Nginx jest proste, gdy masz pełny dostęp root do serwera. Hosting VPS i Serwery dedykowane AlexHost dają Ci pełną kontrolę nad środowiskiem serwera, co sprawia, że konfiguracje takie jak ta są szybkie i bezbolesne.

Metoda 3: Obsługa przekierowań 404 za pomocą PHP

W przypadku witryn uruchamiających PHP możesz obsługiwać przekierowania 404 programowo za pomocą niestandardowej strony błędu PHP. Ta metoda oferuje największą elastyczność — możesz rejestrować błędy, wyświetlać dynamiczną treść lub stosować warunkową logikę przekierowania.

Krok 1: Utwórz niestandardowy plik PHP 404

Utwórz plik o nazwie 404.php w katalogu głównym z następującą zawartością:

<?php
// Send a 301 permanent redirect header
header("HTTP/1.1 301 Moved Permanently");
header("Location: /new-page.php");
exit();
?>

Aby uzyskać bardziej przyjazne dla użytkownika podejście, które wyświetla pomocną stronę zamiast natychmiast przekierowywać:

<?php
http_response_code(404);
// Log the 404 for monitoring
error_log("404 Error: " . $_SERVER['REQUEST_URI']);
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Page Not Found</title>
</head>
<body>
    <h1>Oops! Page Not Found</h1>
    <p>The page you're looking for doesn't exist. <a href="/">Return to Homepage</a></p>
</body>
</html>

Krok 2: Wskaż serwer na niestandardowy plik PHP

Dla Apache, dodaj do .htaccess:

ErrorDocument 404 /404.php

Dla Nginx, dodaj do bloku serwera:

error_page 404 /404.php;

location = /404.php {
    internal;
}

Dyrektywa internal zapewnia, że strona błędu jest dostępna tylko wewnętrznie przez Nginx — nie bezpośrednio przez użytkowników wpisujących adres URL.

Metoda 4: Rozwiązania specyficzne dla WordPress do przekierowań 404

Jeśli Twoja witryna działa na WordPress, masz dodatkowe opcje poza konfiguracją na poziomie serwera.

Korzystanie z wtyczki

Wtyczki takie jak Redirection, Rank Math SEO lub Yoast SEO zawierają wbudowane monitorowanie 404 i zarządzanie przekierowaniami. Te narzędzia pozwalają Ci:

  • Wyświetlać wszystkie błędy 404 na pulpicie nawigacyjnym
  • Konfigurować przekierowania bez dotykania plików serwera
  • Automatycznie sugerować przekierowania na podstawie podobnych istniejących adresów URL

Edycja functions.php

Dla programistów możesz dodać logikę przekierowania bezpośrednio do pliku functions.php Twojego motywu:

function custom_404_redirect() {
    if ( is_404() ) {
        wp_redirect( home_url(), 301 );
        exit();
    }
}
add_action( 'template_redirect', 'custom_404_redirect' );

To przekierowuje wszystkie błędy 404 na stronę główną ze statusem 301.

Testowanie przekierowań 404

Po wdrożeniu dowolnej metody przekierowania dokładne testowanie jest niezbędne. Oto jak sprawdzić, czy wszystko działa prawidłowo:

Ręczne testowanie w przeglądarce

  1. Przejdź do adresu URL na Twojej witrynie, o którym wiesz, że nie istnieje (np. example.com/this-page-does-not-exist)
  2. Potwierdź, że zostałeś przekierowany na prawidłowe miejsce docelowe
  3. Sprawdź pasek adresu przeglądarki, aby upewnić się, że adres URL został zaktualizowany

Używanie curl do weryfikacji stanu HTTP

curl -I https://yourdomain.com/non-existent-page

Poszukaj HTTP/1.1 301 Moved Permanently w nagłówkach odpowiedzi, a następnie nagłówka Location wskazującego na Twój docelowy adres URL.

Narzędzia online

Użyj narzędzi takich jak:

  • Google Search Console — identyfikuje błędy 404, które Google napotkał podczas crawlowania Twojej witryny
  • Screaming Frog SEO Spider — crawluje Twoją witrynę i oznacza uszkodzone linki
  • Redirect Checker (redirect-checker.org) — weryfikuje łańcuchy przekierowań i ostateczne miejsca docelowe

Najlepsze praktyki zarządzania błędami 404

1. Zaprojektuj pomocną niestandardową stronę 404

Nawet jeśli przekierowujesz większość błędów 404, niektóre nieuchronnie się przesliznią. Dobrze zaprojektowana niestandardowa strona 404 powinna zawierać:

  • Jasną, przyjazną wiadomość wyjaśniającą, że strona nie została znaleziona
  • Pasek wyszukiwania, aby użytkownicy mogli znaleźć to, czego szukają
  • Linki do Twoich najpopularniejszych stron lub kategorii
  • Menu nawigacyjne głównej witryny
  • Link powrotny na stronę główną

2. Używaj przekierowań 301 — nie 302

Zawsze używaj przekierowań 301 (trwałych) dla usuniętych lub przeniesionych stron. Przekierowanie 302 (tymczasowe) nie przekazuje wartości SEO i mówi wyszukiwarkom, że oryginalny adres URL może powrócić. Używaj 302 tylko wtedy, gdy strona jest naprawdę tymczasowo niedostępna.

3. Unikaj łańcuchów przekierowań

Łańcuch przekierowań występuje, gdy adres URL A przekierowuje na adres URL B, który przekierowuje na adres URL C. Każdy skok w łańcuchu zmniejsza wartość linku i spowalnia czasy ładowania strony. Zawsze przekierowuj bezpośrednio na ostateczny docelowy adres URL.

4. Monitoruj błędy 404 w sposób ciągły

Błędy 404 to nie jednorazowa naprawa. Nowe uszkodzone linki pojawiają się stale — z powodu zmian adresów URL na zewnętrznych witrynach, z powodu Twoich własnych aktualizacji treści i z powodu błędów użytkownika. Skonfiguruj ciągłe monitorowanie za pomocą:

  • Google Search Console (raport Coverage)
  • Narzędzia audytu witryny Ahrefs lub SEMrush
  • Analiza dziennika dostępu serwera

5. Priorytetyzuj strony 404 o wysokiej wartości

Nie wszystkie błędy 404 są jednakowo ważne. Najpierw skoncentruj się na stronach, które:

  • Mają linki zwrotne z innych witryn (sprawdź za pomocą Ahrefs lub Moz)
  • Otrzymują znaczący ruch z wyszukiwania organicznego (widoczny w Google Search Console)
  • Są linkowane wewnętrznie z innych stron Twojej witryny

6. Utrzymuj SSL aktywny

Przekierowanie 404 na witrynie HTTPS wymaga ważnego certyfikatu SSL. Jeśli Twój certyfikat wygasł, użytkownicy napotkają ostrzeżenie bezpieczeństwa, zanim zobaczą Twoje przekierowanie. Upewnij się, że Twój SSL jest zawsze aktualny — AlexHost oferuje Certyfikaty SSL, aby Twoja witryna była bezpieczna i zaufana zarówno dla użytkowników, jak i wyszukiwarek.

Błędy 404 i SEO: Co musisz wiedzieć

Zrozumienie, jak błędy 404 wpływają na Twoje SEO, pomaga Ci prawidłowo priorytetyzować naprawy.

Czy błędy 404 bezpośrednio szkodzą rankingom?

Pojedynczy błąd 404 na stronie o niskim ruchu i bez linków nie będzie znacząco szkodzić Twoim rankingom. Jednak rozpowszechnione błędy 404 — szczególnie na stronach z linkami zwrotnymi lub znaczną wartością linku wewnętrznego — mogą:

  • Marnować budżet crawlowania, powodując, że Google crawluje mniej Twoich ważnych stron
  • Skutkować utratą wartości linku z zewnętrznych linków zwrotnych wskazujących na martwe adresy URL
  • Zwiększać sygnały współczynnika odrzuceń, jeśli użytkownicy często lądują na stronach błędów
  • Powodować usunięcie indeksowanych stron z indeksu Google w miarę upływu czasu

Miękkie 404 są gorsze niż twarde 404

Miękkie 404 występuje, gdy strona zwraca kod stanu 200 OK, ale wyświetla komunikat „strona nie znaleziona”. Jest to bardziej szkodliwe niż właściwe 404, ponie

15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij