{"id":15549,"date":"2025-10-30T15:14:31","date_gmt":"2025-10-30T14:14:31","guid":{"rendered":"https:\/\/dhosting.pl\/pomoc\/?post_type=manual_kb&#038;p=15549"},"modified":"2025-10-30T15:14:31","modified_gmt":"2025-10-30T14:14:31","slug":"wordpress-jak-przekierowac-404-na-strone-glowna-w-htaccess","status":"publish","type":"manual_kb","link":"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/wordpress-jak-przekierowac-404-na-strone-glowna-w-htaccess\/","title":{"rendered":"WordPress: jak przekierowa\u0107 404 na stron\u0119 g\u0142\u00f3wn\u0105 w .htaccess"},"content":{"rendered":"<p><!-- Meta description: Prosty przewodnik: regu\u0142y .htaccess w WordPress, kt\u00f3re zamieni\u0105 404 w przekierowanie na stron\u0119 g\u0142\u00f3wn\u0105. Instrukcje, gotowe fragmenty i pu\u0142apki. --><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-left counter-flat ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Spis tre\u015bci<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/wordpress-jak-przekierowac-404-na-strone-glowna-w-htaccess\/#O_co_chodzi_i_kiedy_to_ma_sens\" >O co chodzi i kiedy to ma sens<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/wordpress-jak-przekierowac-404-na-strone-glowna-w-htaccess\/#Wymagania_i_kopia_zapasowa\" >Wymagania i kopia zapasowa<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/wordpress-jak-przekierowac-404-na-strone-glowna-w-htaccess\/#Gdzie_wstawic_reguly_w_htaccess\" >Gdzie wstawi\u0107 regu\u0142y w .htaccess<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/wordpress-jak-przekierowac-404-na-strone-glowna-w-htaccess\/#Najprostsze_przekierowanie_404_na_strone_glowna\" >Najprostsze przekierowanie 404 na stron\u0119 g\u0142\u00f3wn\u0105<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/wordpress-jak-przekierowac-404-na-strone-glowna-w-htaccess\/#Wersja_z_wyjatkami_aby_uniknac_petli_i_problemow\" >Wersja z wyj\u0105tkami, aby unikn\u0105\u0107 p\u0119tli i problem\u00f3w<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/wordpress-jak-przekierowac-404-na-strone-glowna-w-htaccess\/#Zachowanie_parametrow_w_adresie_URL\" >Zachowanie parametr\u00f3w w adresie URL<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/wordpress-jak-przekierowac-404-na-strone-glowna-w-htaccess\/#301_czy_302_%E2%80%93_ktore_przekierowanie_wybrac\" >301 czy 302 &#8211; kt\u00f3re przekierowanie wybra\u0107<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/wordpress-jak-przekierowac-404-na-strone-glowna-w-htaccess\/#Alternatywa_ErrorDocument_404_bez_przekierowania\" >Alternatywa: ErrorDocument 404 bez przekierowania<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/wordpress-jak-przekierowac-404-na-strone-glowna-w-htaccess\/#Jak_przetestowac_wdrozenie\" >Jak przetestowa\u0107 wdro\u017cenie<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/wordpress-jak-przekierowac-404-na-strone-glowna-w-htaccess\/#Najczestsze_problemy_i_ich_rozwiazania\" >Najcz\u0119stsze problemy i ich rozwi\u0105zania<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/wordpress-jak-przekierowac-404-na-strone-glowna-w-htaccess\/#Uwaga_SEO_i_dobra_praktyka\" >Uwaga SEO i dobra praktyka<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/wordpress-jak-przekierowac-404-na-strone-glowna-w-htaccess\/#Szybkie_podsumowanie_wdrozenia\" >Szybkie podsumowanie wdro\u017cenia<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"O_co_chodzi_i_kiedy_to_ma_sens\"><\/span>O co chodzi i kiedy to ma sens<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Wielu administrator\u00f3w chce wymusi\u0107 przekierowanie 404 na stron\u0119 g\u0142\u00f3wn\u0105 w WordPress przez .htaccess, aby u\u017cytkownik nie widzia\u0142 b\u0142\u0119du 404 po wej\u015bciu na nieistniej\u0105cy adres. Taki zabieg poprawia do\u015bwiadczenie cz\u0119\u015bci odwiedzaj\u0105cych, ale ma wp\u0142yw na SEO. Zanim wdro\u017cysz rozwi\u0105zanie, poznaj zalecane regu\u0142y i spos\u00f3b wstawienia ich w odpowiednim miejscu pliku.<\/p>\n<div id=\"dhost-3457716368\" class=\"dhost-inpost dhost-entity-placement\"><a href=\"https:\/\/dhosting.pl\/opieka-stron.html?utm_source=pomoc&utm_medium=artykul&utm_campaign=pomoc\" target=\"_blank\">\r\n\t<img decoding=\"async\" src=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2025\/01\/baner-opieka.png\" alt=\"opieka stron www\">\r\n<\/a>\r\n<br \/>\r\n<br \/><\/div><h2><span class=\"ez-toc-section\" id=\"Wymagania_i_kopia_zapasowa\"><\/span>Wymagania i kopia zapasowa<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Aby regu\u0142y dzia\u0142a\u0142y, serwer musi u\u017cywa\u0107 Apache z w\u0142\u0105czonym modu\u0142em mod_rewrite oraz mie\u0107 AllowOverride ustawione tak, by .htaccess by\u0142 respektowany. Zanim rozpoczniesz, pobierz kopi\u0119 pliku .htaccess z katalogu g\u0142\u00f3wnego WordPress i zapisz j\u0105 lokalnie. Pozwoli to szybko wr\u00f3ci\u0107 do poprzedniego stanu, je\u015bli co\u015b p\u00f3jdzie nie tak.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Gdzie_wstawic_reguly_w_htaccess\"><\/span>Gdzie wstawi\u0107 regu\u0142y w .htaccess<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>WordPress tworzy i utrzymuje w\u0142asny blok mi\u0119dzy # BEGIN WordPress i # END WordPress. Twoje regu\u0142y przekierowa\u0144 404 umie\u015b\u0107 nad tym blokiem. Dzi\u0119ki temu wykonaj\u0105 si\u0119 wcze\u015bniej i nie zostan\u0105 nadpisane przez aktualizacje lub zmiany struktury odno\u015bnik\u00f3w.<\/p>\n<pre><code class=\"\" data-line=\"\"># Twoje regu\u0142y przekierowa\u0144 - wstaw tutaj\n\n# BEGIN WordPress\n&lt;IfModule mod_rewrite.c&gt;\nRewriteEngine On\nRewriteBase \/\nRewriteRule ^index\\.php$ - [L]\nRewriteCond %{REQUEST_FILENAME} !-f\nRewriteCond %{REQUEST_FILENAME} !-d\nRewriteRule . \/index.php [L]\n&lt;\/IfModule&gt;\n# END WordPress\n<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Najprostsze_przekierowanie_404_na_strone_glowna\"><\/span>Najprostsze przekierowanie 404 na stron\u0119 g\u0142\u00f3wn\u0105<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Je\u015bli chcesz, aby ka\u017cdy nieistniej\u0105cy adres kierowa\u0142 na stron\u0119 g\u0142\u00f3wn\u0105 serwisu, dodaj poni\u017csze regu\u0142y nad blokiem WordPress. Zapewniaj\u0105 one, \u017ce prawdziwe pliki i katalogi nie s\u0105 przekierowywane.<\/p>\n<pre><code class=\"\" data-line=\"\">&lt;IfModule mod_rewrite.c&gt;\nRewriteEngine On\n\n# Nie przekierowuj strony g\u0142\u00f3wnej\nRewriteCond %{REQUEST_URI} !^\/$\n\n# Przekieruj tylko wtedy, gdy nie istnieje plik ani katalog\nRewriteCond %{REQUEST_FILENAME} !-f\nRewriteCond %{REQUEST_FILENAME} !-d\n\n# Przekieruj na stron\u0119 g\u0142\u00f3wn\u0105\nRewriteRule ^.*$ \/ [R=301,L]\n&lt;\/IfModule&gt;\n<\/code><\/pre>\n<p>Dzia\u0142anie: ka\u017cdy nieistniej\u0105cy adres otrzyma 301 i trafi na stron\u0119 g\u0142\u00f3wn\u0105. To rozwi\u0105zanie jest proste i skuteczne, ale mo\u017ce by\u0107 zbyt agresywne w instalacjach z dodatkowymi punktami wej\u015bcia.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Wersja_z_wyjatkami_aby_uniknac_petli_i_problemow\"><\/span>Wersja z wyj\u0105tkami, aby unikn\u0105\u0107 p\u0119tli i problem\u00f3w<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>W praktyce dobrze jest wykluczy\u0107 logowanie, panel, API, mapy witryny i kana\u0142y RSS. Dzi\u0119ki temu unikniesz p\u0119tli przekierowa\u0144 i przypadkowego blokowania wa\u017cnych \u015bcie\u017cek.<\/p>\n<pre><code class=\"\" data-line=\"\">&lt;IfModule mod_rewrite.c&gt;\nRewriteEngine On\n\n# Nigdy nie przekierowuj strony g\u0142\u00f3wnej\nRewriteCond %{REQUEST_URI} !^\/$\n\n# Wyklucz panel i logowanie\nRewriteCond %{REQUEST_URI} !^\/wp-admin\nRewriteCond %{REQUEST_URI} !^\/wp-login\\.php\n\n# Wyklucz REST API i kana\u0142y\nRewriteCond %{REQUEST_URI} !^\/wp-json\nRewriteCond %{REQUEST_URI} !\/feed\/?$\n\n# Wyklucz mapy witryny i popularne pliki serwisowe\nRewriteCond %{REQUEST_URI} !sitemap\\.xml$\nRewriteCond %{REQUEST_URI} !robots\\.txt$\n\n# Przekieruj tylko gdy nie istnieje plik ani katalog\nRewriteCond %{REQUEST_FILENAME} !-f\nRewriteCond %{REQUEST_FILENAME} !-d\n\n# 301 na stron\u0119 g\u0142\u00f3wn\u0105\nRewriteRule ^.+$ \/ [R=301,L]\n&lt;\/IfModule&gt;\n<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Zachowanie_parametrow_w_adresie_URL\"><\/span>Zachowanie parametr\u00f3w w adresie URL<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Przy przekierowaniu 301 Apache domy\u015blnie zachowuje query string. Je\u015bli chcesz mie\u0107 pewno\u015b\u0107, \u017ce parametry zostan\u0105 do\u0142\u0105czone nawet przy w\u0142asnych docelowych parametrach, mo\u017cesz doda\u0107 flag\u0119 QSA. W podstawowym scenariuszu nie jest to potrzebne, ale pe\u0142niejsza forma wygl\u0105da tak:<\/p>\n<pre><code class=\"\" data-line=\"\">RewriteRule ^.+$ \/ [R=301,L,QSA]<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"301_czy_302_%E2%80%93_ktore_przekierowanie_wybrac\"><\/span>301 czy 302 &#8211; kt\u00f3re przekierowanie wybra\u0107<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>301 to przekierowanie trwa\u0142e i jest w\u0142a\u015bciwym wyborem, je\u015bli decyzja jest docelowa. Przegl\u0105darki i wyszukiwarki mog\u0105 je pami\u0119ta\u0107.<\/p>\n<p>302 to przekierowanie tymczasowe. Przydaje si\u0119 do test\u00f3w lub kr\u00f3tkich kampanii, poniewa\u017c nie utrwala zmiany w indeksie wyszukiwarek.<\/p>\n<p>Na start u\u017cyj 302 do sprawdzenia dzia\u0142ania, a po weryfikacji zmie\u0144 na 301.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Alternatywa_ErrorDocument_404_bez_przekierowania\"><\/span>Alternatywa: ErrorDocument 404 bez przekierowania<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Mo\u017cesz te\u017c podmieni\u0107 sam\u0105 stron\u0119 404 na zawarto\u015b\u0107 strony g\u0142\u00f3wnej, bez 301. Wtedy u\u017cytkownik zobaczy homepage, ale status HTTP pozostanie 404. Rozwi\u0105zanie jest mniej inwazyjne SEO, cho\u0107 nie zmienia adresu w pasku. Wstaw jedn\u0105 lini\u0119 nad blokiem WordPress:<\/p>\n<pre><code class=\"\" data-line=\"\">ErrorDocument 404 \/<\/code><\/pre>\n<p>To szybka metoda, gdy chcesz wy\u015bwiadczy\u0107 przys\u0142ug\u0119 u\u017cytkownikom, a jednocze\u015bnie zachowa\u0107 semantyk\u0119 b\u0142\u0119du.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Jak_przetestowac_wdrozenie\"><\/span>Jak przetestowa\u0107 wdro\u017cenie<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Wyczy\u015b\u0107 cache przegl\u0105darki i wtyczek cache. Przekierowania 301 s\u0105 agresywnie buforowane.<\/p>\n<p>Wejd\u017a na losowy, nieistniej\u0105cy adres, np. \/to-nie-istnieje-abc. Powiniene\u015b zosta\u0107 przeniesiony na stron\u0119 g\u0142\u00f3wn\u0105.<\/p>\n<p>Sprawd\u017a nag\u0142\u00f3wki HTTP w narz\u0119dziach deweloperskich przegl\u0105darki lub poleceniem:<\/p>\n<pre><code class=\"\" data-line=\"\">curl -I https:\/\/twojadomena.pl\/to-nie-istnieje-abc<\/code><\/pre>\n<p>Oczekiwany status to 301 lub 302, a nag\u0142\u00f3wek Location powinien wskazywa\u0107 na adres g\u0142\u00f3wny.<\/p>\n<p>Upewnij si\u0119, \u017ce logowanie, panel, kana\u0142y RSS, sitemap i REST API nie s\u0105 przekierowywane.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Najczestsze_problemy_i_ich_rozwiazania\"><\/span>Najcz\u0119stsze problemy i ich rozwi\u0105zania<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>P\u0119tla przekierowa\u0144 &#8211; dodaj wykluczenia dla strony g\u0142\u00f3wnej, panelu, logowania, API i sitemap jak w przyk\u0142adzie z wyj\u0105tkami.<\/p>\n<p>Regu\u0142y nie dzia\u0142aj\u0105 &#8211; sprawd\u017a, czy mod_rewrite jest aktywny i czy .htaccess jest czytany. W razie w\u0105tpliwo\u015bci umie\u015b\u0107 celowo b\u0142\u0119dn\u0105 dyrektyw\u0119, aby upewni\u0107 si\u0119, \u017ce serwer reaguje, potem j\u0105 usu\u0144.<\/p>\n<p>Konflikty z wtyczkami cache lub bezpiecze\u0144stwa &#8211; cz\u0119\u015b\u0107 wtyczek dopisuje w\u0142asne regu\u0142y. Utrzymuj swoje regu\u0142y nad blokiem WordPress i nad blokami wtyczek.<\/p>\n<p>Multisite &#8211; w sieci witryn cz\u0119\u015b\u0107 \u015bcie\u017cek jest rezerwowana. Zachowaj dodatkow\u0105 ostro\u017cno\u015b\u0107 przy wyj\u0105tkach i przetestuj na podwitrynach.<\/p>\n<p>HTTPS i www &#8211; je\u015bli masz osobne przekierowania do https lub na preferowan\u0105 wersj\u0119 domeny, umie\u015b\u0107 je nad reszt\u0105 i przetestuj \u0142a\u0144cuch przekierowa\u0144, aby unikn\u0105\u0107 nadmiarowych skok\u00f3w.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Uwaga_SEO_i_dobra_praktyka\"><\/span>Uwaga SEO i dobra praktyka<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Masowe przekierowanie 404 na stron\u0119 g\u0142\u00f3wn\u0105 bywa niezalecane z perspektywy SEO, poniewa\u017c uniemo\u017cliwia wyszukiwarce rozr\u00f3\u017cnienie mi\u0119dzy usuni\u0119t\u0105 a przeniesion\u0105 tre\u015bci\u0105. Lepsze w d\u0142ugim terminie jest mapowanie starych adres\u00f3w na najbardziej zbli\u017cone nowe podstrony lub zwracanie 410 dla trwale usuni\u0119tych zasob\u00f3w. Je\u015bli jednak Twoim celem jest proste prowadzenie u\u017cytkownik\u00f3w na stron\u0119 g\u0142\u00f3wn\u0105, pokazane regu\u0142y dzia\u0142aj\u0105 skutecznie i bezobs\u0142ugowo.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Szybkie_podsumowanie_wdrozenia\"><\/span>Szybkie podsumowanie wdro\u017cenia<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Dodaj regu\u0142y nad blokiem WordPress.<\/p>\n<p>Zacznij od wersji z wyj\u0105tkami.<\/p>\n<p>Przetestuj je jako 302, potem zmie\u0144 na 301.<\/p>\n<p>Monitoruj logi i narz\u0119dzia analityczne, aby wykry\u0107 niepo\u017c\u0105dane przekierowania.<\/p>\n","protected":false},"author":6,"featured_media":10957,"parent":0,"menu_order":0,"template":"","format":"standard","manualknowledgebasecat":[96,95,109],"manual_kb_tag":[6505,2980,6504,232,1202,6502,6503,6506,1784,76],"class_list":["post-15549","manual_kb","type-manual_kb","status-publish","format-standard","has-post-thumbnail","hentry","manualknowledgebasecat-aplikacje-internetowe-cms","manualknowledgebasecat-hosting","manualknowledgebasecat-strony-www","manual_kb_tag-301-vs-302","manual_kb_tag-apache","manual_kb_tag-errordocument-404","manual_kb_tag-htaccess","manual_kb_tag-mod_rewrite","manual_kb_tag-przekierowanie-404","manual_kb_tag-przekierowanie-na-strone-glowna","manual_kb_tag-reguly-htaccess","manual_kb_tag-seo","manual_kb_tag-wordpress"],"_links":{"self":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb\/15549","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb"}],"about":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/types\/manual_kb"}],"author":[{"embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/users\/6"}],"version-history":[{"count":2,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb\/15549\/revisions"}],"predecessor-version":[{"id":15551,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb\/15549\/revisions\/15551"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/media\/10957"}],"wp:attachment":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/media?parent=15549"}],"wp:term":[{"taxonomy":"manualknowledgebasecat","embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manualknowledgebasecat?post=15549"},{"taxonomy":"manual_kb_tag","embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb_tag?post=15549"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}