Jeśli prowadzisz stronę internetową na serwerze Apache, plik .htaccess jest jednym z najpotężniejszych narzędzi, które masz do dyspozycji. Pozwala on kontrolować, jak zachowują się Twoje adresy URL — od przekierowań po czyste przepisywanie URL — bez potrzeby zmiany rzeczywistej konfiguracji serwera.

W tym artykule omówimy podstawy przekierowania i przepisywania URL za pomocą .htaccess, z wyraźnymi przykładami i wyjaśnieniami.

Czym jest plik .htaccess?

.htaccess oznacza Hypertext Access. Jest to plik konfiguracyjny używany na serwerach internetowych opartych na Apache, który pozwala na wprowadzenie zmian na poziomie katalogu w zachowaniu serwera.

Możesz:

  • Przekierować ruch z jednego adresu URL na inny

  • Utworzyć czyste adresy URL (np. /about zamiast /about.php)

  • Ograniczyć dostęp do niektórych stron

  • Włączyć HTTPS

  • I wiele więcej

Przekierowywanie adresów URL

1. 301 Przekierowanie trwałe

Użyj tego, gdy strona została trwale przeniesiona na nowy adres URL.

Redirect 301 /old-page.html https://yourdomain.com/new-page.html

2. 302 Przekierowanie tymczasowe

Użyj tego, gdy przekierowanie jest tymczasowe.

Redirect 302 /temp-page.html https://yourdomain.com/coming-soon.html

3. Przekierowanie z użyciem mod_rewrite

Możesz również przekierować używając RewriteRule:

RewriteEngine On
RewriteRule ^old-page$ https://yourdomain.com/new-page [R=301,L]

Przepisywanie adresów URL (Czyste adresy URL)

Przepisywanie adresów URL jest używane do uczynienia adresów URL bardziej przyjaznymi dla użytkowników i SEO. Na przykład, zamiast:

https://example.com/product.php?id=123

Możesz użyć:

https://example.com/product/123

1. Podstawowa zasada przepisywania

RewriteEngine On
RewriteRule ^product/([0-9]+)$ product.php?id=$1 [L]

To mówi Apache:

  • Gdy ktoś uzyskuje dostęp do /product/123

  • Wewnątrz przepisz to na product.php?id=123

2. Usuń rozszerzenie .php

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^.]+)$ $1.php [L]

To pozwala użytkownikom uzyskać dostęp do example.com/about zamiast example.com/about.php.

Najlepsze praktyki

  • Zawsze wykonuj kopię zapasową swojego pliku .htaccess przed wprowadzeniem zmian.

  • Użyj [L], aby zatrzymać dalsze przetwarzanie reguł, gdy znajdziesz dopasowanie.

  • Testuj swoje przekierowania za pomocą narzędzi takich jak httpstatus.io.

  • Nie mieszaj zbyt wielu Redirect i RewriteRule w tym samym bloku — preferuj RewriteRule dla spójności.

Podsumowanie

Plik .htaccess jest potężnym narzędziem konfiguracyjnym, które daje Ci szczegółową kontrolę nad Twoją stroną internetową opartą na Apache — często bez dotykania podstawowych plików serwera. Niezależnie od tego, czy chcesz przekierować przestarzałe strony, wymusić HTTPS, poprawić SEO poprzez czyste adresy URL, czy ograniczyć dostęp do wrażliwych obszarów, .htaccess umożliwia to wszystko za pomocą zaledwie kilku linii kodu.

Zrozumienie i opanowanie nawet kilku dyrektyw .htaccess może znacznie poprawić wydajność, bezpieczeństwo i użyteczność Twojej strony internetowej. Pozwala to szybko reagować na zmiany w strukturze witryny, zapobiegać uszkodzonym linkom i utrzymywać spójną obsługę dla Twoich odwiedzających.

Praktyczny przykład: Przekierowywanie starych adresów URL na nowe

Wyobraź sobie, że przebudowałeś swojego bloga i chcesz przekierować ruch z przestarzałego wpisu na nowe miejsce:

Redirect 301 /old-blog-post https://www.example.com/blog/new-post

Ta prosta linia zapewnia, że:

  • Wyszukiwarki przenoszą wartość SEO na nowy adres URL

  • Użytkownicy nie trafiają na stronę 404

  • Przekierowania odbywają się natychmiast z kodem statusu 301 (trwałe)