Baza wiedzy›Webhosting›Plik .htaccess

Webhosting – Plik .htaccess

Na tej stronieKiedy skorzystać z tego poradnikaPlik .htaccessRestore default .htaccessKonfiguracja pliku .htaccessOgraniczenia pliku .htaccess na webhostinguTypowe problemyCzęsto zadawane pytania

Potrzebujesz pomocy ze stroną? Znajdź swojego specjalistę w dziale VEDOS Profi ⧉.

W tym artykule dowiesz się:


Kiedy skorzystać z tego poradnika

Skorzystaj z tego poradnika na przykład w następujących sytuacjach:

  • Subdomena lub dodatkowa domena wyświetla treść strony głównej albo linki prowadzą na adresy z /domains/. Zobacz Subdomena wyświetla inną stronę.
  • Po edycji pliku .htaccess wyświetla się Internal Server Error lub Too Many Redirects. Zobacz Nowe ustawienia nie działają.
  • Wtyczka bezpieczeństwa WordPressa zgłasza błąd open_basedir restriction in effect dla pliku .htaccess. Zobacz Wtyczka zgłasza open_basedir.
  • Musisz przywrócić domyślny plik .htaccess, ponieważ został usunięty lub uszkodzony, albo zakładasz nową stronę w miejscu starej. Procedurę znajdziesz w rozdziale Restore default .htaccess.
  • Chcesz wymusić HTTPS, przekierować stary adres lub ograniczyć dostęp według adresu IP. Zobacz Konfiguracja pliku .htaccess.
  • Strona, na przykład edytor stron, ładuje skrypty niestabilnie. Możesz spróbować wyłączyć proxy cache.

Plik .htaccess

Plik .htaccess (na początku musi być kropka) zawiera ustawienia serwera Apache, które sterują działaniem webhostingu. Do najczęstszych zastosowań należą kierowanie w strukturze katalogów webhostingu, wymuszanie HTTPS, przekierowywanie adresów internetowych i wyłączanie proxy cache.

Dostęp do pliku .htaccess

Aby uzyskać dostęp do pliku .htaccess postępuj w następujący sposób:

  1. Zaloguj się do hostingu przez FTP, na przykład za pomocą klienta WebFTP ⧉ (Manual).
  2. Wejdź do katalogu www.
  3. Wśród plików znajdź plik o nazwie .htaccess.
WebFTP - Plik .htaccess w katalogu www
WebFTP – Plik .htaccess w katalogu www

Reguły w domyślnym pliku .htaccess dotyczą wszystkich stron. Reguły w plikach .htaccess w innych katalogach (często na przykład www/domains/domena.tld) dotyczą wyłącznie zawartości danego katalogu i wszystkich jego podkatalogów.

Plików .htaccess możesz mieć więcej niż jeden – zależy to od liczby katalogów, w których chcesz ustawić określone reguły.


Restore default .htaccess

Jeśli nie udaje się znaleźć przyczyny błędu spowodowanego zmodyfikowanym domyślnym plikiem .htaccess albo plik został przypadkowo usunięty, możesz go przywrócić bezpośrednio w administracji klienta.

  1. Zaloguj się do administracji klienta ⧉.
  2. W górnym menu wybierz Hosting services Webhosting lub WMS.
  3. Wybierz webhosting, w którym chcesz przywrócić plik .htaccess.
  4. W menu po lewej stronie kliknij Tools.
  5. W tabeli Restore default .htaccess kliknij przycisk Restore .htaccess.
Przycisk przywracania domyślnego pliku .htaccess
Przycisk przywracania domyślnego pliku .htaccess

Przywracając domyślny plik .htaccess tym przyciskiem, jednocześnie tworzysz kopię zapasową dotychczasowego pliku, którą system skopiuje do tego samego katalogu.

Przycisk przywraca wyłącznie plik .htaccess w katalogu www. Inne pliki .htaccess, na przykład utworzone przez systemy CMS, trzeba przywrócić w inny sposób.

Domyślny plik .htaccess nie zawiera reguł dla HTTPS. Jeśli używasz HTTPS, dodaj reguły do przywróconego pliku ręcznie.

Konfiguracja pliku .htaccess

Warunki i polecenia w pliku .htaccess używają wyrażeń regularnych. Jeśli ich nie znasz, nadal możesz edytować plik, ale zachowaj szczególną ostrożność i korzystaj z instrukcji. Niedziałający plik .htaccess powoduje błąd 500 – Internal Server Error.

Zanim zaczniesz edytować plik .htaccess, utwórz jego kopię zapasową.

W tym rozdziale znajdziesz instrukcje dotyczące:

Kierowanie w strukturze katalogów Webhostingu

Głównym zadaniem naszego domyślnego pliku .htaccess jest kierowanie żądań do właściwych katalogów Webhostingu, zwłaszcza domains i subdom. Jeśli zauważasz błędy w nawigowaniu po katalogach, popraw plik .htaccess tak, aby zawierał poniższy tekst, lub całkowicie go przywróć.

RewriteEngine On

# cele domeny (aliasy)
RewriteCond %{REQUEST_URI} !^domains/
RewriteCond %{REQUEST_URI} !^/domains/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$
RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d
RewriteRule (.*) domains/%2/$1 [DPI]

# subdomeny (s nebo bez www na zacatku)
RewriteCond %{REQUEST_URI} !^subdom/
RewriteCond %{REQUEST_URI} !^/subdom/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$
RewriteCond %{DOCUMENT_ROOT}/subdom/%2 -d
RewriteRule (.*) subdom/%2/$1 [DPI]

# aliasy - spravne presmerovani pri chybejicim /
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^domains/[^/]+/(.+[^/])$ /$1/ [R]

# subdomeny - spravne presmerovani pri chybejicim /
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^subdom/[^/]+/(.+[^/])$ /$1/ [R]

Konfiguracja HTTPS

Podczas aktywacji HTTPS ustawiasz między innymi regułę .htaccess, która wybiera wariant z HTTPS jako domyślny. Wpisz ją bezpośrednio do pliku .htaccess w katalogu www, tuż pod wierszem RewriteEngine On.

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L]
Header set Content-Security-Policy "upgrade-insecure-requests;"

Dodanie tego kodu może spowodować zablokowanie naszego instalatora aplikacji. Jeśli podczas instalacji napotkasz problem z plikiem .htaccess, tymczasowo go przywróć a po udanej instalacji ponownie nadpisz go automatycznie utworzoną kopią zapasową.

Domyślny plik .htaccess nie zawiera reguł dla HTTPS. Jeśli plik został przywrócili i chcesz używać reguł dla HTTPS, dodaj je ponownie.

Przekierowanie URL

Poniższa reguła, znana jako przekierowanie 301, informuje przeglądarkę i wyszukiwarki, że strona została trwale przeniesiona ze starego adresu na nowy. Dzięki temu zwłaszcza wyszukiwarki nie będą traktować przeniesionej treści jako zduplikowanej.

Skopiuj poniższy tekst i wklej go do pliku .htaccess pod wierszem RewriteEngine On. Następnie zmodyfikuj go według poniższych zasad:

  1. W tekście staraadresa\.tld zastąp tekst staraadresa adresem, z którego następuje przekierowanie, a tld zastąp właściwą końcówką. Upewnij się, że przed znakiem . (kropką) znajduje się znak \ (ukośnik wsteczny).
  2. W tekście http://novaadresa.tld zastąp novaadresa.tld adresem, na który przekierowujesz stronę. Jeśli nowy adres używa https, zmień też tekst http.
  3. Jeśli chcesz przekierowywać na stronę główną nowego adresu, usuń w drugim wierszu znaki $1.
RewriteCond %{HTTP_HOST} ^(www\.)?staraadresa\.tld$
RewriteRule (.*) http://novaadresa.tld/$1 [R=301,L]

Ograniczenie dostępu dla wybranych adresów IP

W pliku .htaccess możesz ograniczyć dostęp do określonych (lub wszystkich) plików wyłącznie do wybranych adresów IP. Oto przykład blokowania dostępu do pliku wp-login.php (strona logowania do panelu administracyjnego WordPress):

<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from X.X.X.X
</Files>

Kod możesz zmodyfikować według poniższych zasad:

  • W <Files ___> możesz podać albo konkretny plik, albo znak * dla wszystkich plików w danym katalogu i podkatalogach.
  • Adres X.X.X.X zastąp swoim adresem IPv4 lub IPv6.
  • Dyrektywę Allow from X.X.X.X możesz podać więcej, każdą w osobnym wierszu.

Próby dostępu do danego pliku z innych adresów IP będą kończyć się błędem 403.

Jedynym sposobem uzyskania dostępu do pliku z zablokowanego adresu jest dodanie tego adresu do listy dozwolonych lub usunięcie kodu. Żadnej z tych czynności nie wykonuje pomoc techniczna.

Wyłączenie proxy cache

Jeśli chcesz wyłączyć proxy cache dla strony lub jej części (katalogu, subdomeny), wstaw do pliku .htaccess ten kod:

# DISABLE CACHING
<IfModule mod_headers.c>
Header set Cache-Control "no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires 0
</IfModule>

Ograniczenia pliku .htaccess na webhostingu

Aby zapobiec niepożądanemu zachowaniu serwera, wprowadziliśmy w pliku .htaccess pewne ograniczenia.

Użycie jakiegokolwiek niedozwolonego polecenia lub parametru polecenia Options spowoduje niedziałanie całej strony, co objawi się błędem 500 – Internal Server Error.

W konfiguracji serwera WWW możesz używać następujących kategorii poleceń dla htaccess:

  • AuthConfig
  • FileInfo
  • Limit
  • Indexes
  • Options*

Unikaj używania poleceń:

  • php_flag
  • php_value
  • ServerSignature
  • SetEnv
  • SetHandler
  • XBitHack
  • AddHandler
  • Options*

* W przypadku polecenia Options możesz używać wyłącznie opcji Indexes, pozostałe są zabronione.


Typowe problemy

Do typowych problemów z plikiem .htaccess należą:

Nowe ustawienia nie działają

Problem: Po zmianie ustawień pliku .htaccess nowe zachowanie nie jest widoczne albo strona przestała działać całkowicie. Najczęściej są to błędy Internal Server Error i Too Many Redirects.

Przyczyna: Przyczyną może być błędna nazwa lub lokalizacja pliku .htaccess, miejsce wstawienia kodu w tym pliku albo jego poprawność.

Rozwiązanie: Dokładnie sprawdź i popraw błędy:

  1. Sprawdź, czy plik znajduje się we właściwym katalogu (nie musi to być tylko www) i czy nazywa się dokładnie .htaccess, wraz z kropką na początku.
  2. Upewnij się, że kod jest umieszczony we właściwym miejscu pliku (na przykład na początku, po poleceniu RewriteEngine On), oraz że wszystkie fragmenty zawierające tekst zastępczy (np. domena.tld) zostały zastąpione właściwym tekstem.
  3. Jeśli plik zawiera zablokowane polecenia, wyłącz dane wiersze, umieszczając znak # na początku wiersza.

Przywracanie domyślnego pliku .htaccess nie działa

Problem: Po przywróceniu domyślnego pliku .htaccess strona nadal zachowuje się tak samo.

Przyczyna: Albo przywracasz niewłaściwy plik .htaccess, albo nieprawidłowy widok strony jest zapisany w pamięci podręcznej.

Rozwiązanie: Odśwież stronę z pominięciem pamięci podręcznej przeglądarki skrótem klawiszowym Ctrl+Shift+R.

Jeśli potrzebujesz przywrócić stan domyślny pliku .htaccess w innym miejscu niż w katalogu www (lub plik .htaccess systemu CMS, na przykład WordPressa), pobierz go z kopie zapasowe lub ze strony internetowej systemu CMS.

Nieznany program nadpisuje plik .htaccess

Problem: Po zmianie ustawień pliku .htaccess coś wkrótce nadpisuje go niepożądanym kodem.

Przyczyna: Na Webhostingu znajduje się oprogramowanie (najczęściej wtyczka, może to być także malware), które generuje do pliku .htaccess własny kod.

Rozwiązanie: Znajdź źródło zmian w pliku .htaccess:

  1. Wtyczki zabezpieczające najczęściej za pomocą pliku .htaccess blokują dostęp do wrażliwych miejsc systemu, na przykład do panelu administracyjnego systemu CMS. Przy próbie dostępu często pojawia się błąd 403: Forbidden. Rozwiązaniem jest zmiana ustawień lub wyłączenie danej wtyczki zabezpieczającej.
  2. Aktualizacje systemu CMS mogą wprowadzić do własnego pliku .htaccess problematyczny kod, który najczęściej powoduje błąd 500 – Internal Server Error. Rozwiązaniem jest wyłączenie automatycznych aktualizacji i szybka ingerencja w kod pliku .htaccess zaraz po ręcznej aktualizacji.
  3. Malware zwykle zaburza wyświetlanie strony lub przekierowuje ją na niepożądany adres URL. Rozwiązaniem jest dokładne oczyszczenie strony z wirusów, czego VEDOS niestety nie pośredniczy ani nie zapewnia w tym zakresie wsparcia.

Subdomena wyświetla inną stronę

Problem: Subdomena lub dodatkowa domena wyświetla stronę główną albo linki prowadzą na adresy z /domains/, mimo że strona jest wgrana we właściwym folderze.

Przyczyna: Plik .htaccess w folderze www nie kieruje żądań do folderów domains i subdom, albo jest nadpisywany przez inny plik .htaccess w katalogu strony. Częsty jest też błędny adres strony w ustawieniach systemu CMS (w bazie danych znajduje się adres domeny głównej zamiast subdomeny).

Rozwiązanie: W folderze www przywróć domyślny plik .htaccess, ewentualnie wklej kod z sekcji kierowanie w strukturze katalogów. Sprawdź strukturę katalogów według artykułów Webhosting – Subdomeny i Webhosting – Przywracanie struktury katalogów (reset) FTP. W systemie CMS upewnij się, że w ustawieniach znajduje się adres subdomeny. Na koniec odśwież stronę z pominięciem pamięci podręcznej przeglądarki skrótem klawiszowym Ctrl+Shift+R.

Wtyczka zgłasza open_basedir

Problem: Wtyczka bezpieczeństwa WordPressa (np. Wordfence lub Really Simple Security) zgłasza open_basedir restriction in effect. File(/.htaccess) is not within the allowed path.

Przyczyna: Polecenie open_basedir jest na Webhostingu zablokowane ze względów bezpieczeństwa, dlatego wtyczka nie może edytować pliku .htaccess.

Rozwiązanie: Przywróć plik .htaccess WordPressa do domyślnej postaci zgodnie z dokumentacją WordPressa. Jeśli dostęp przez WebFTP nie działa, połącz się za pomocą klienta FTP na komputerze, na przykład FileZilli. Dalsze kroki opisano w rozdziale Nieznany program nadpisuje plik .htaccess.


Często zadawane pytania

Jak przywrócić domyślny plik .htaccess systemu CMS?

Zanim zaczniesz edytować plik .htaccess, utwórz jego kopię zapasową. Jeśli jej nie masz, zainstaluj system CMS ponownie albo znajdź domyślną zawartość pliku .htaccess tej samej wersji CMS gdzie indziej. Jeśli wszystko inne zawiedzie, skontaktuj się ze wsparciem klienta.

Gdzie znajdę zaawansowane polecenia .htaccess?

Zaawansowanych poleceń .htaccess nie obsługujemy. Niektóre znajdziesz w artykułach społeczności w kategorii .htaccess ⧉. Przy instrukcjach znalezionych w internecie pamiętaj o ograniczeniach pliku .htaccess na Webhostingu.

Nie mam dostępu przez WebFTP. Czy pomoc techniczna naprawi plik .htaccess?

Najpierw spróbuj połączyć się za pomocą klienta FTP na komputerze, na przykład FileZilli. Jeśli nalegasz na naprawę z naszej strony, udostępnij pomocy technicznej tymczasowy dostęp FTP i wyślij zgłoszenie przez formularz kontaktowy ⧉.

Strona niestabilnie ładuje skrypty. Czy pomoże wyłączenie proxy cache?

Może tak, ale nie ma pewności. Wklej do pliku .htaccess kod z rozdziału Wyłączenie proxy cache. Jeśli to nie pomoże, przywróć poprzednie ustawienia.

Czy ten artykuł był pomocny?

Państwa opinia pomaga nam ulepszać artykuły.

Państwa wiadomość trafi do zespołu redagującego dokumentację, który na nią nie odpowiada. Jeśli potrzebują Państwo pomocy, prosimy skontaktować się z nami za pomocą formularza kontaktowego. Prosimy nie podawać haseł ani danych osobowych.

Nie znalazłeś tego, czego szukasz?

Zadaj pytanie innym klientom na stronie społeczności Help.