Jak przekierować adres strony w pliku .htaccess?
Reguła w .htaccess może skierować odwiedzających na HTTPS, wybraną wersję adresu z www lub bez www albo na nową domenę. Wybierz jeden wariant odpowiadający Twojemu celowi i dopasuj go do istniejących przekierowań. Najpierw przetestuj przekierowanie tymczasowe, a dopiero potem ustaw stałe.
Przygotuj plik i docelowy adres
Upewnij się, że docelowa witryna działa, a certyfikat obejmuje potrzebne nazwy. Przy wejściu przez HTTPS przeglądarka sprawdza certyfikat jeszcze przed odebraniem przekierowania, więc certyfikat źródłowej domeny również musi być poprawny.
Otwórz .htaccess w katalogu właściwej witryny, zwykle public_html. Zachowaj kopię poza publicznym katalogiem. Jeśli pliku nie ma, skorzystaj z instrukcji utworzenia .htaccess. Nie zastępuj całej zawartości samym przykładem przekierowania.
Przykłady umieść przed regułami aplikacji, a w WordPressie poza automatycznie zarządzaną sekcją BEGIN WordPress i END WordPress. Zastąp example.com własną domeną. Poniższe warianty są alternatywami — nie wklejaj wszystkich jednocześnie.


Wariant 1: HTTPS i adres bez www
Jeżeli głównym adresem ma być https://example.com, reguła skieruje tam żądania po HTTP oraz żądania z inną nazwą hosta obsługiwane przez tę witrynę. Domena docelowa jest wpisana wprost:
RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [R=302,L]

Wariant 2: HTTPS i adres z www
Jeżeli głównym adresem ma być https://www.example.com, użyj zamiast poprzedniego wariantu:
RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [R=302,L]
Warunek HTTPS jest odpowiedni, gdy serwer poprawnie rozpoznaje szyfrowane połączenie. Za proxy lub CDN sprawdź sposób przekazywania tej informacji. Dla Cloudflare Flexible połączenie do serwera używa HTTP i może spowodować pętlę; najpierw skonfiguruj certyfikat serwera i właściwy tryb SSL/TLS, zwykle Full (strict).
Wariant 3: przekierowanie starej domeny na nową
Aby przenieść ruch z stara-domena.pl i jej wersji www na nowa-domena.pl, dodaj regułę w katalogu obsługującym starą domenę:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?stara-domena\.pl$ [NC]
RewriteRule ^ https://nowa-domena.pl%{REQUEST_URI} [R=302,L]
Przykłady wykorzystują ścieżkę żądania, więc /kontakt trafi na tę samą ścieżkę w adresie docelowym. Ponieważ cel nie podaje nowego zapytania, dotychczasowe parametry po znaku zapytania są zachowywane. Jeśli nowa strona ma inne adresy podstron, przygotuj właściwą mapę przekierowań zamiast zakładać identyczną strukturę.
Przetestuj przekierowanie przed zmianą na 301
Zapisz plik i sprawdź HTTP, HTTPS, www i adres bez www w nowym oknie prywatnym. Przetestuj kilka istniejących podstron, adres z parametrami oraz adresy ze znakami specjalnymi, jeśli występują na stronie. Sprawdź końcowy adres, kod odpowiedzi i działanie formularzy.
Przykłady używają R=302, czyli przekierowania tymczasowego. Po potwierdzeniu poprawnego działania zmień je na R=301, jeśli przeniesienie ma być stałe. Przeglądarki i pośrednie pamięci mogą długo zachowywać 301, dlatego nie rozpoczynaj prób od tego statusu.
Znaczenie reguł i flag opisują przykłady przekierowań Apache oraz dokumentacja flag mod_rewrite.
Co zrobić przy pętli lub błędzie serwera?
Jeśli pojawi się błąd 500, przywróć zachowaną wersję pliku i sprawdź log błędów. Przy pętli porównaj reguły .htaccess, ustawienia domeny w DirectAdmin, konfigurację aplikacji oraz CDN. Wszystkie powinny prowadzić do zgodnego adresu. Pomocny jest poradnik ERR_TOO_MANY_REDIRECTS.
Nie usuwaj przy okazji reguł logowania, ochrony plików ani ustawień aplikacji. Jeśli nie wiesz, która reguła powoduje konflikt, przekaż do sprawdzenia wyłącznie potrzebny fragment konfiguracji bez sekretów i danych dostępowych.
tagi: .htaccess domena przekierowanie ssl