Plik .hataccess

utworzone przez | paź 20, 2024 | Pliki | 0 komentarzy

Poradnik: Wszystko o pliku .htaccess

Plik .htaccess to potężne narzędzie do zarządzania serwerem Apache, który pozwala na modyfikowanie ustawień serwera bezpośrednio w katalogu, w którym jest umieszczony. Dzięki niemu możemy wykonywać przekierowania, zabezpieczać strony, blokować boty i wiele więcej. W tym poradniku przyjrzymy się najczęstszym zastosowaniom tego pliku.

1. Czym jest .htaccess?

.htaccess to plik konfiguracyjny, który jest używany przez serwery Apache do nadpisywania ustawień na poziomie katalogów. Jego nazwa pochodzi od „hypertext access”. Dzięki niemu możesz modyfikować zachowanie serwera dla konkretnej strony internetowej bez konieczności modyfikacji głównych plików konfiguracyjnych serwera.

2. Jak stworzyć plik .htaccess?

Stworzenie pliku .htaccess jest proste:

  • Otwórz dowolny edytor tekstu (np. Notepad, Sublime Text).
  • Zapisz pusty plik pod nazwą .htaccess (upewnij się, że nie ma rozszerzenia .txt).
  • Umieść go w katalogu głównym swojej strony lub w dowolnym katalogu, w którym chcesz nadpisać domyślne ustawienia serwera.

3. Do czego służy plik .htaccess?

Plik .htaccess służy do wielu różnych celów, w tym:

  • Przekierowania URL (np. z HTTP na HTTPS lub z jednej domeny na inną).
  • Blokowanie dostępu (np. blokowanie adresów IP lub botów).
  • Zarządzanie uprawnieniami (np. ochrona hasłem).
  • Obsługa błędów (np. tworzenie niestandardowych stron błędów 404).
  • Zarządzanie indeksami (np. ukrywanie lub pokazywanie zawartości katalogów).

4. Przykładowa zawartość pliku .htaccess

Oto prosty przykład zawartości pliku .htaccess: Przekierowanie na HTTPS

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Ustawienie niestandardowej strony błędu 404

ErrorDocument 404 /404.html

5. Popularne przekierowania w .htaccess

5.1. Przekierowanie 301

Przekierowanie 301 oznacza „przeniesienie na stałe”. Używa się go, aby poinformować wyszukiwarki, że dana strona została na stałe przeniesiona pod inny adres.

Redirect 301 /stara-strona.html https://nowa-strona.pl/nowa-strona.html

5.2. Wymuszenie HTTPS w adresie URL domeny

Aby wymusić, aby wszystkie połączenia były szyfrowane przez HTTPS:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

5.3. Wymuszenie przedrostka www w adresie URL domeny

Jeżeli chcesz, aby każda strona była dostępna z przedrostkiem www:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

5.4. Wymuszenie adresu URL bez przedrostka www

Aby domena działała bez przedrostka www:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]

5.5. Przekierowanie całej domeny na nową

Gdy chcesz przekierować całą domenę na nowy adres:

Redirect 301 / https://nowa-domena.pl/

6. Własna strona błędu

Za pomocą .htaccess możesz ustawić własne strony błędów, np. 404, 500 czy 403. Aby to zrobić, wystarczy dodać linijkę kodu:

ErrorDocument 404 /404.html
ErrorDocument 500 /500.html

7. Blokowanie adresów IP

7.1. Blokada wszystkich adresów IP

Jeśli chcesz zablokować dostęp wszystkim użytkownikom do określonego katalogu, możesz to zrobić za pomocą:

Order Deny,Allow
Deny from all

7.2. Blokada wszystkich adresów IP z wyjątkiem zdefiniowanych

Jeżeli chcesz zablokować wszystkie adresy IP oprócz kilku wyjątków:

Order Deny,Allow
Deny from all
Allow from 192.168.1.1
Allow from 123.123.123.123

7.3. Blokada wybranych adresów IP

Aby zablokować dostęp dla wybranych adresów IP:

Order Deny,Allow
Deny from 123.123.123.123

8. Blokowanie użytkowników na podstawie strony odsyłającej

Możesz blokować dostęp użytkownikom, którzy trafili na stronę z określonej strony odsyłającej:

RewriteEngine On
RewriteCond %{HTTP_REFERER} example.com [NC]
RewriteRule .* - [F]

9. Zatrzymanie hotlinków

Hotlinkowanie to bezpośrednie osadzanie obrazków z Twojej strony na innych stronach, co może obciążać serwer. Aby temu zapobiec:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?twojadomena\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [F]

10. Blokowanie botów

Możesz zablokować dostęp złośliwych botów do Twojej strony:

SetEnvIfNoCase User-Agent "BadBot" bad_bot
Order Allow,Deny
Allow from all
Deny from env=bad_bot

11. Ustawienie domyślnej strony głównej lub folderu

Jeżeli chcesz ustawić inną stronę główną lub domyślną stronę otwieraną w katalogu:

DirectoryIndex index.html home.html

12. Ochrona za pomocą hasła

Za pomocą .htaccess możesz zabezpieczyć dostęp do folderów hasłem. Do tego będziesz potrzebował również pliku .htpasswd. Kod w .htaccess wygląda tak:

AuthType Basic
AuthName "Restricted Area"
AuthUserFile /ścieżka/do/.htpasswd
Require valid-user

13. Blokada popularnych prób włamania w systemie WordPress

Aby zabezpieczyć swoją stronę WordPress przed niektórymi typowymi atakami, możesz użyć poniższego kodu:

# Blokowanie dostępu do plików konfiguracyjnych

order allow,deny
deny from all

14. Złożone przekierowania z użyciem wyrażeń regularnych

Zaawansowane przekierowania mogą być wykonane z użyciem wyrażeń regularnych. Na przykład, aby przekierować wszystkie żądania:

RewriteEngine On
RewriteRule ^stara-strona/(.*)$ /nowa-strona/$1 [R=301,L]