Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Generator pliku .htaccess

Generuj reguły .htaccess dla Apache: przekierowania 301/302, URL rewriting, ochrona hasłem, HTTPS redirect, custom error pages. Bezpłatnie.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}
# ----------------------------------------------------------------------
# Wygenerowano w generatorze .htaccess (webp.pl)
# Wskazówka: przed podmianą zrób kopię zapasową dotychczasowego .htaccess.
# ----------------------------------------------------------------------

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Generator .htaccess – Apache mod_rewrite i przekierowania

Plik .htaccess (Hypertext Access) to konfiguracja Apache na poziomie katalogu – bez dostępu do głównego httpd.conf. Generator tworzy gotowe reguły dla najczęstszych zastosowań: przekierowania, URL rewriting, ochrona dostępu i nagłówki bezpieczeństwa.

generator htaccess reguły .htaccess Apache mod_rewrite .htaccess przekierowania

Podstawy pliku .htaccess

Lokalizacja: w katalogu webroot (public_html) lub podkatalogach. Zakres: działa dla danego katalogu i podkatalogów. AllowOverride: musi być włączone w httpd.conf (AllowOverride All). Wykonanie: Apache parsuje przy każdym żądaniu (uwaga: wydajność!). Format: dyrektywy Apache, komentarze z #. Najczęstsze moduły: mod_rewrite, mod_auth, mod_headers.

Przekierowania 301 i 302

301 Permanent: SEO-friendly, zmień URL na stałe. Redirect 301 /old-page.html /new-page. RewriteRule ^old-page$ /new-page [R=301,L]. 302 Temporary: bez wpływu na SEO, tymczasowe. Redirect 302 /promo /landing. HTTPS redirect: RewriteCond %{HTTPS} off → RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]. www → non-www: RewriteCond %{HTTP_HOST} ^www\.

URL Rewriting – przyjazne adresy

mod_rewrite: zamienia czytelne URL na query string. RewriteEngine On (wymagane). RewriteRule ^artykul/([0-9]+)$ index.php?id=$1 [L]. CMS: WordPress używa RewriteRule ^index\.php$ - [L] + RewriteRule . /index.php [L]. Laravel/Symfony: RewriteRule ^ index.php [L]. Flagi: [L]=last, [R]=redirect, [QSA]=query string append, [NC]=case insensitive.

Bezpieczeństwo przez .htaccess

Ochrona hasłem (Basic Auth): AuthType Basic + AuthName + AuthUserFile /path/.htpasswd + Require valid-user. Blokowanie IP: Deny from 192.168.1.1. Ochrona pliku: Deny from all . Wyłącz listowanie katalogów: Options -Indexes. Nagłówki bezpieczeństwa: Header always set X-Frame-Options DENY. Limit metod HTTP: Limit PUT DELETE.

Jak generator zamienia wybory z formularza na reguły Apache

Generator nie zgaduje konfiguracji – działa jak translator. Każde pole formularza ma przypisany szablon dyrektywy, a wartości, które wpisujesz, trafiają do ściśle określonych miejsc tego szablonu. Wybranie przekierowania trwałego wstawia kod odpowiedzi 301, wybranie przepisywania adresu – parę RewriteCond i RewriteRule. Zaznaczenie kilku opcji powoduje sklejenie kilku bloków w jeden plik, w kolejności zależnej od typu zadania: najpierw włączenie modułu przepisywania, potem warunki i reguły, na końcu dyrektywy nagłówków oraz kontroli dostępu.

Kolejność bloków ma znaczenie, bo Apache czyta plik od góry do dołu i przy dyrektywach mod_rewrite zatrzymuje się na pierwszym trafieniu, jeśli reguła ma flagę [L]. Dlatego przekierowania pojedynczych adresów warto umieszczać przed ogólnymi regułami kierującymi wszystko do index.php – inaczej adres objęty przekierowaniem mógłby zostać przechwycony przez regułę zapasową i nigdy nie dotrzeć do swojego celu.

Warunek RewriteCond odnosi się zawsze do reguły zapisanej bezpośrednio pod nim, a zmienne w nawiasach procentowych, takie jak %{HTTPS}, %{HTTP_HOST} czy %{REQUEST_URI}, są podstawiane przez Apache w momencie obsługi żądania. Wzorce w RewriteRule to wyrażenia regularne – kropka oznacza dowolny znak, więc kropkę w nazwie pliku trzeba poprzedzić ukośnikiem, a grupy w nawiasach okrągłych stają się numerowanymi odwołaniami $1, $2 w adresie docelowym.

Przykład krok po kroku: trwałe przekierowanie adresu z zachowaniem parametrów

  1. W formularzu wybierasz zadanie „przekierowanie trwałe (301)” i podajesz ścieżkę źródłową, na przykład /stara-oferta.html.
  2. Jako adres docelowy wpisujesz /oferta/ – generator traktuje go jako adres na tym samym hoście, bez zmiany domeny.
  3. Zaznaczasz opcję zachowania parametrów zapytania; wtedy do reguły dochodzi flaga [QSA], a wynik wygląda tak: RewriteRule ^stara-oferta\.html$ /oferta/ [R=301,QSA,L].
  4. Przed regułą generator dopisuje RewriteEngine On, jeśli w pliku jeszcze go nie ma – bez tej linii Apache zignoruje cały blok.
  5. Cały wynik wklejasz do pliku .htaccess w katalogu public_html, czyli w webroot, i zapisujesz zmiany.
  6. Test: wchodzisz na /stara-oferta.html?utm_source=mail i sprawdzasz w narzędziach deweloperskich, czy odpowiedź ma kod 301, a przeglądarka kończy na /oferta/?utm_source=mail.

Od wyboru w formularzu do gotowej dyrektywy

Opcja w generatorzeWstawiana dyrektywaUwagi
Przekierowanie pojedynczego adresu (301)Redirect 301 /stara-strona.html /nowa-strona.htmlDziała bez mod_rewrite, dopasowanie jest dokładne
Przekierowanie całego kataloguRedirect 301 /stary-katalog /nowy-katalogObejmuje także podścieżki starego katalogu
Przepisanie adresu na parametrRewriteRule ^artykul/([0-9]+)$ index.php?id=$1 [L]Wymaga włączonego RewriteEngine On
Wymuszenie HTTPSRewriteCond %{HTTPS} off przed regułą przekierowującąWarunek sprawdza protokół bieżącego żądania
Zamiana www na non-wwwRewriteCond %{HTTP_HOST} ^www\.Test hosta musi stać przed regułą docelową
Ochrona hasłem (Basic Auth)AuthType Basic, AuthName, AuthUserFile, Require valid-userWymaga osobnego pliku .htpasswd
Blokada adresu IPDeny from 192.168.1.1 lub Require all deniedSkładnia zależy od wersji Apache
Nagłówek bezpieczeństwaHeader set X-Content-Type-Options nosniffKorzysta z modułu mod_headers

Praktyczne wskazówki przy wdrażaniu wygenerowanego pliku

  • Zachowaj kopię obecnego pliku – przed podmianą .htaccess zapisz jego dotychczasową treść. Błędna dyrektywa potrafi wywołać błąd 500 na całej witrynie, a wtedy wystarczy przywrócić poprzednią wersję.
  • Testuj adresy jeden po drugim – po każdej zmianie sprawdź kod odpowiedzi dla adresu źródłowego i docelowego. Dzięki temu od razu wiadomo, która reguła działa, a która wymaga poprawy.
  • Nie mieszaj dwóch mechanizmów w jednej sprawie – jeśli przekierowanie obsługuje już Redirect z mod_alias, dodanie równoległej reguły RewriteRule dla tego samego adresu zwykle kończy się konfliktem kolejności.
  • Sprawdź, czy hosting pozwala na .htaccess – gdy serwer ma wyłączone AllowOverride, wygenerowany kod trzeba przenieść do konfiguracji hosta albo zmienić plan na taki, który obsługuje pliki katalogowe.
  • Komentuj bloki – wiersze zaczynające się od # nie są wykonywane, a pozwalają po miesiącach rozpoznać, po co powstała dana reguła. Generator opisuje w ten sposób każdą sekcję.

Czego generator nie sprawdzi

  • Stanu konfiguracji serwera – narzędzie nie wie, czy mod_rewrite, mod_headers i mod_auth są włączone ani czy AllowOverride dopuszcza użycie pliku. Wygenerowany kod może być poprawny składniowo i mimo to nie działać.
  • Konfliktów z istniejącymi regułami – generator nie analizuje aktualnej treści .htaccess. Jeśli w pliku są już wpisy dotyczące tych samych adresów, o wyniku zdecyduje kolejność, a nie sam nowy blok.
  • Wersji Apache – składnia kontroli dostępu różni się między Apache 2.2 a 2.4 (Deny from kontra Require). Reguły są zapisywane w jednej konwencji, więc na starszym serwerze trzeba je dostosować ręcznie.
  • Adresów docelowych – generator nie sprawdza, czy strona wskazana w przekierowaniu istnieje i czy odpowiada kodem 200. Literówka w adresie da regułę poprawną formalnie, ale prowadzącą do błędu 404.

Najczęstsze pytania

Jak wykonać przekierowanie HTTPS przez .htaccess?

RewriteEngine On. RewriteCond %{HTTPS} off. RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]. Dla serwerów za proxy/load balancer: RewriteCond %{HTTP:X-Forwarded-Proto} !https. Sprawdź w przeglądarce przez DevTools (Network): kod 301 i nagłówek Location. Po wdrożeniu HTTPS: wyczyść cache przeglądarki (Ctrl+Shift+Del).

Jak chronić katalog hasłem?

htpasswd -c /home/user/.htpasswd username (utwórz plik). htpasswd /home/user/.htpasswd username2 (dodaj). .htaccess: AuthType Basic, AuthName "Restricted Area", AuthUserFile /bezwzgledna/sciezka/.htpasswd, Require valid-user. UWAGA: .htpasswd poza webroot (żeby nie był dostępny publicznie). HTTPS + Basic Auth: szyfruje credentials.

Jak naprawić błąd 500 po edycji .htaccess?

Błąd składni w .htaccess = HTTP 500. Sprawdź: error_log Apache (często /var/log/apache2/error.log). Tymczasowo: zmień nazwę na .htaccess.bak → sprawdź czy 500 znika. Debuguj linię po linii: zakomentuj # nową regułę. Walidator online: htaccess.madewithlove.com. Częste błędy: brak RewriteEngine On, zły path do AuthUserFile.

Jaka jest różnica między .htaccess a nginx.conf?

Apache: .htaccess (per-directory), httpd.conf (globalny). Nginx: brak .htaccess, wszystko w nginx.conf/vhost. Wydajność: .htaccess wolniejszy (parsowanie każdego żądania). Nginx: szybszy bo konfiguracja załadowana raz. Migracja Apache→Nginx: trzeba przepisać reguły. Nginx rewrite: location ~ ^/old/(.*)$ { return 301 /new/$1; }.

Jak ustawić custom error pages?

ErrorDocument 404 /404.html. ErrorDocument 500 /500.html. ErrorDocument 403 /forbidden.html. Pełna ścieżka: ErrorDocument 404 /errors/not-found.html. Dynamic 404 (PHP): ErrorDocument 404 /404.php. Sprawdź: wejdź na nieistniejący URL. Ważne: błąd 404 powinien zwracać status 404 (nie 200 – soft 404 jest zły dla SEO).

Czym różni się Redirect 301 od RewriteRule [R=301,L]?

Redirect to prosta dyrektywa z mod_alias, która działa na dokładnie podanej ścieżce i nie wymaga mod_rewrite. RewriteRule dopasowuje wzorzec wyrażeniem regularnym, więc jedną regułą można obsłużyć wiele adresów.

Czy plik .htaccess działa na Nginx?

Nie. Nginx nie czyta plików .htaccess – przekierowania i przepisywanie adresów konfiguruje się w dyrektywach server i location.

Dlaczego moje reguły .htaccess nie działają?

Najczęstsze przyczyny to brak wiersza RewriteEngine On, wyłączone AllowOverride w konfiguracji serwera albo brak wymaganego modułu. Warto też sprawdzić, czy reguła nie stoi pod zbyt ogólnym wpisem kończącym przetwarzanie flagą [L].

Gdzie wkleić wygenerowany kod?

Do pliku .htaccess w katalogu głównym witryny, czyli w webroot. Jeśli reguła ma dotyczyć tylko jednej sekcji, można zapisać osobny .htaccess w podkatalogu – działa wtedy na ten katalog i jego podkatalogi.

Jak sprawdzić, czy przekierowanie 301 działa poprawnie?

Wejdź na adres źródłowy i obejrzyj kod odpowiedzi w narzędziach deweloperskich albo pobierz nagłówki narzędziem curl. Kod 301 wraz z nagłówkiem Location wskazującym adres docelowy oznacza, że reguła zadziałała.

Powiązane narzedzia: tester .htaccess, generator nginx config i analizator nagłówków HTTP.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!