Gotowy plik .htaccess dla Apache: przekierowanie na HTTPS i jedną wersję adresu z www lub bez, przekierowania 301, strona 404, blokada IP i plików .env oraz kompresja.
Generator .htaccess - Przekierowanie na HTTPS i 301
Gotowy plik .htaccess dla Apache: przekierowanie na HTTPS i jedną wersję adresu z www lub bez, przekierowania 301, strona 404, blokada IP i plików .env oraz kompresja.
Parametry
Wprowadź dane do obliczeń
💡 Wypełnij wszystkie wymagane pola, aby odblokować przycisk obliczania
Generator .htaccess: HTTPS, www i przekierowania 301 w jednym pliku
Domena mojsklep.pl, wybór „HTTPS i bez www” i jedna linia „/stara-oferta /oferta” dają plik, w którym każdy z czterech wariantów starego adresu (http, https, z www i bez) trafia na https://mojsklep.pl/oferta w jednym przekierowaniu 301. Generator .htaccess składa reguły dla serwera Apache 2.4: wymuszenie HTTPS, jedną wersję adresu z www albo bez, listę przekierowań stałych (także z parametrami typu ?id=7), własną stronę błędu 404, blokadę adresów IP, blokadę plików .env i .git, kompresję i pamięć podręczną przeglądarki.
Pod gotowym kodem jest tabela „Dokąd trafią adresy”: cztery warianty adresu i liczba przekierowań po drodze. Reguły z generatora sprawdziliśmy na prawdziwym Apache 2.4.48, wgrywając wygenerowane pliki i odpytując serwer, a ta tabela zgadzała się z jego odpowiedziami.
Cztery liczby, które warto znać przed edycją .htaccess
Od pustego formularza do pliku na serwerze
- Domena - np. mojsklep.pl. Możesz wkleić cały adres, generator sam zdejmie https:// i www. Domenę z polskimi znakami wpisz w zapisie punycode (xn--...).
- Adres docelowy strony - HTTPS bez www, HTTPS z www, samo HTTPS albo „bez zmian”, jeśli plik ma tylko przekierowywać pojedyncze adresy.
- Przekierowania 301 - w każdej linii stary i nowy adres oddzielone spacją, np. „/stara-oferta /oferta”. Nowy adres może być w innej domenie.
- Strona 404 - ścieżka do własnej strony błędu, np. /404.html.
- Blokada IP - adresy albo zakresy, każdy w osobnej linii.
- Dodatkowe opcje - brak listy plików, blokada plików ukrytych, kompresja, pamięć podręczna.
- Odczytaj wyniki - kliknij w kod (zaznaczy się cały), zapisz jako .htaccess i sprawdź w tabeli, dokąd trafią adresy.
Jak czytać wygenerowane reguły
Tak wygląda środek pliku dla mojsklep.pl z jednym przekierowaniem:
RewriteRule "^stara-oferta/?$" "https://mojsklep.pl/oferta" [NC,R=301,L]
RewriteCond %{HTTP_HOST} ^www\.mojsklep\.pl$ [NC]
RewriteRule ^ https://mojsklep.pl%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://mojsklep.pl%{REQUEST_URI} [R=301,L]
Kolejność ma znaczenie. Pojedyncze przekierowania stoją przed regułami hosta i HTTPS i od razu prowadzą na pełny docelowy adres, dlatego http://www.mojsklep.pl/stara-oferta nie skacze trzy razy (www, potem HTTPS, potem nowa ścieżka), tylko raz. Wzorzec zaczyna się bez ukośnika, bo w pliku .htaccess Apache porównuje adres już bez wiodącego „/”: reguła z „^/stara-oferta” nigdy by nie zadziałała. Końcowe „/?” sprawia, że /stara-oferta i /stara-oferta/ przekierowują tak samo, a flaga NC wyłącza rozróżnianie wielkości liter.
Adresy z parametrami, np. /index.php?id=7, wymagają osobnego warunku RewriteCond %{QUERY_STRING}, bo sama RewriteRule parametrów nie widzi. Generator dopisuje wtedy flagę QSD, żeby stary parametr nie przeszedł na nowy adres (bez niej wyszłoby /kontakt?id=7).
Ściąga: dyrektywy w pliku
| Dyrektywa | Moduł | Co robi w tym pliku |
|---|---|---|
| RewriteRule ... [R=301,L] | mod_rewrite | przekierowanie stałe i koniec przebiegu reguł |
| RewriteCond %{HTTPS} !=on | mod_rewrite | warunek: połączenie bez szyfrowania |
| RewriteRule ... - [F] | mod_rewrite | odpowiedź 403 dla plików zaczynających się od kropki |
| Require not ip | mod_authz_core / host | blokada adresu, zawsze razem z Require all granted w RequireAll |
| ErrorDocument 404 | core | własna treść strony błędu przy zachowanym kodzie 404 |
| Options -Indexes | core | wyłącza listę plików w katalogu bez index |
| AddOutputFilterByType DEFLATE | mod_deflate + mod_filter | kompresja gzip HTML, CSS, JavaScript, JSON i SVG |
| ExpiresByType | mod_expires | obrazy i fonty 1 rok (max-age=31536000), CSS i JS 1 miesiąc (max-age=2592000) |
Dokąd trafi adres przy każdym ustawieniu
Wyniki z tabeli generatora dla domeny mojsklep.pl i ścieżki /kontakt, potwierdzone odpowiedziami serwera Apache. Liczba w nawiasie to liczba przekierowań.
| Wejście | HTTPS bez www | HTTPS z www | Tylko HTTPS |
|---|---|---|---|
| http://mojsklep.pl | https://mojsklep.pl (1) | https://www.mojsklep.pl (1) | https://mojsklep.pl (1) |
| http://www.mojsklep.pl | https://mojsklep.pl (1) | https://www.mojsklep.pl (1) | https://www.mojsklep.pl (1) |
| https://mojsklep.pl | bez zmian (0) | https://www.mojsklep.pl (1) | bez zmian (0) |
| https://www.mojsklep.pl | https://mojsklep.pl (1) | bez zmian (0) | bez zmian (0) |
Ostatnia kolumna pokazuje, czemu samo HTTPS zwykle nie wystarcza: zostają dwie działające wersje strony, z www i bez.
Fakty z dokumentacji Apache, które oszczędzają godzinę szukania błędu
Kto po to sięga
Właściciel strony po zakupie certyfikatu SSL - chce, żeby wszystkie adresy http przeszły na https bez ręcznego pisania reguł. Osoba przenosząca bloga albo sklep na nową strukturę adresów - wkleja listę starych i nowych adresów z arkusza i dostaje gotowe przekierowania 301. Administrator na hostingu współdzielonym - nie ma dostępu do konfiguracji serwera, więc .htaccess to jedyne miejsce na blokadę uciążliwego adresu IP albo ukrycie pliku .env. Twórca stron dla klientów - potrzebuje powtarzalnego, czytelnego pliku z komentarzami, który klient zrozumie.
Pytania o plik .htaccess
Powiązane narzędzia
Kalkulator Analizy ABC
Klasyfikacja ABC listy produktów wklejonej z arkusza, z udziałem skumulowanym i progami do ustawienia - Zobacz kalkulator
Kalkulator Chmod
Uprawnienia 755 albo 644 jako zapis rwx i z powrotem, z bitami specjalnymi i umask - Zobacz generator
Regex Tester
Sprawdź wyrażenie regularne, zanim wpiszesz je do własnej RewriteRule - Zobacz generator
Generator Cron
Harmonogram zadań na serwerze, np. kopia zapasowa co noc - Zobacz generator
Kodowanie Base64
Nagłówek Basic Auth i dane w Base64 - Zobacz generator
Generator MD5
Skrót MD5 tekstu w zapisie hex i Base64 - Zobacz generator
Formatowanie JSON
Walidacja i czytelny zapis plików konfiguracyjnych JSON - Zobacz generator
Generator zweryfikowany przez zespół LiczGrupa.pl
Treść, wzory i wyniki zostały sprawdzone pod kątem poprawności i aktualności przez nasz zespół specjalistów.

Sprawdził: Krystian Szyszka