Co to jest plik .htaccess i jak go używać w WordPressie?

Opublikowany: 2020-10-27

Być może słyszałeś już o pliku .htaccess, ale nie miałeś pojęcia, co to jest i co robi. W tym artykule zamierzamy rzucić światło na plik .htaccess i raz na zawsze ujawnić jego tajemnice. Pod koniec tego artykułu zrozumiesz, że plik .htaccess to, co robi plik .htaccess i jak możesz użyć pliku .htaccess do wykonania określonych zadań. Kontynuujmy!

Co to jest plik .htaccess?

Zacznijmy od przyjrzenia się dokładnie, czym jest plik .htaccess. „htaccess” oznacza „dostęp do hipertekstu”. Ta nazwa opisuje, do czego był używany plik, gdy został po raz pierwszy opracowany. Krótko mówiąc, służył do kontrolowania dostępu użytkowników do niektórych plików i katalogów. Sprawy poszły naprzód, odkąd .htaccess pojawił się po raz pierwszy na scenie i jest teraz używany na wiele różnych sposobów w WordPressie, którym przyjrzymy się szczegółowo.

.htaccess to główny plik konfiguracyjny WordPress, który służy do zastępowania określonych ustawień serwera WWW Apache (Apache to oprogramowanie powszechnie używane na serwerach WWW) lub do implementowania różnych innych funkcji, które wpływają na działanie Twojej witryny. Jest dołączany do wszystkich instalacji WordPressa zaraz po włączeniu permalinków i zwykle znajduje się w katalogu głównym instalacji. Możesz go zobaczyć lub edytować, uzyskując dostęp do plików instalacyjnych za pośrednictwem klienta FTP, takiego jak FileZilla lub WinSCP.

Uwaga: Upewnij się, że preferencje klienta FTP zostały zmodyfikowane tak, aby ukryte pliki były pokazywane.

Domyślnie zawartość pliku .htaccess witryny WordPress po włączeniu permalinków wygląda tak:

 # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress

Jeśli jeszcze tego nie wiesz, „#” na początku wiersza jest komentarzem. # BEGIN WordPress i # END WordPress wiersze komentarzy są używane, aby treść pozostała uporządkowana, gdy więcej reguł zostanie później zastosowanych przez wtyczki lub przez Ciebie. Wszelkie przyszłe dodatki do pliku .htaccess należy umieścić poza tymi wierszami.

Plik .htaccess jest najczęściej używany w WordPress do kontrolowania permalinków w Twojej witrynie. Może być również używany jako potężne narzędzie do różnych innych zadań, takich jak kontrolowanie dostępu do niektórych plików, zwiększanie bezpieczeństwa i wydajności, wysyłanie niestandardowych nagłówków i wiele innych.

Uwaga: ważne jest, aby wszelkie zmiany wprowadzone w pliku .htaccess Twojej witryny były wprowadzane ostrożnie. Nawet prosta literówka w tym pliku może spowodować awarię Twojej witryny. W związku z tym, jeśli nie masz pewności co do jakichkolwiek zmian, które wprowadzasz, najlepiej przetestować je na serwerze pomostowym przed złożeniem wniosku w swojej aktywnej witrynie internetowej.

Rzeczy, które możesz zrobić z plikiem .htaccess

Zobaczmy więc, jak możesz przejąć większą kontrolę nad swoją witryną za pomocą pliku .htaccess.

Przekierowanie między „www” i „bez www”

Powszechnym zastosowaniem pliku .htaccess jest ustawienie stałego przekierowania z Twojej „nagiej domeny” (wersja bez www) do jej wersji www lub na odwrót.

Zanim przejdziesz dalej, upewnij się, że obie domeny są ustawione w Twoim DNS, aby były rozpoznawane na poprawny adres IP serwera.

Ponadto w obszarze administracyjnym WordPress sprawdź, czy sama domena jest ustawiona jako podstawowa.

ustawienia adresu URL witryny

Możesz przekierować domenę www do samej domeny, dodając następujący kod do pliku .htaccess, poniżej domyślnej zawartości.

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

Aby osiągnąć dokładnie odwrotność (jeśli www jest ustawiona jako podstawowa) i przekierować z domeny „bez www” na „www”, musisz wstawić ten kod:

 RewriteEngine on RewriteCond %{HTTP_HOST} ^mycompanyname.com [NC] RewriteRule ^(.*)$ http://www.mycompanyname.com/$1 [R=301,L]

Jeśli nie znasz wyrażeń regularnych używanych w kodzie i chcesz lepiej zrozumieć składnię, nie spiesz się i przeczytaj więcej o REGEX. HT Access Cheat Sheet to kolejne bardzo przydatne narzędzie

Przekierowanie 301 (stałe przekierowanie)

Przekierowanie 301 informuje wyszukiwarki, że adres URL został na stałe zastąpiony innym, a także przekierowuje użytkownika do tego odwiedzającego na nowy (poprawny!) adres URL. .

Oto fragment kodu, który po umieszczeniu w pliku .htaccess załatwia sprawę:

 RewriteEngine on RewriteCond %{HTTP_HOST} ^mycompanyname.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.mycompanyname.com [NC] RewriteRule ^(.*)$ http://example.com/$1 [L,R=301,NC]

W powyższym przykładzie przekierowaliśmy użytkowników z witryny „nazwamojejfirmy.com” na „example.com”. Oczywiście będziesz chciał zastąpić te sekcje własnymi adresami URL.

Dotyczy to również wszystkich ścieżek w domenie. Co oznacza, że ​​na przykład nazwamojejfirmy.com/nowy.html przekieruje do example.com/nowy.html

Przekierowanie 302 (przekierowanie tymczasowe)

Gdy treść jest tymczasowo przenoszona do innej lokalizacji, używane jest przekierowanie 302. Składnia jest taka sama jak w 301. Na przykład:

 Redirect 302 /old.html http//www.mycompanyname.com/new.html

Z praktycznego punktu widzenia wynik jest dokładnie taki sam, ale z jedną ważną różnicą. Dzięki przekierowaniu 301 wyszukiwarki otrzymują informację, że strona nie jest już aktywna, co zachęci wyszukiwarki do usunięcia tej strony z wyników wyszukiwania. W przypadku przekierowania 302 oryginalny adres URL będzie nadal indeksowany przez Google i będzie nadal indeksowany zamiast nowego adresu URL. W związku z tym jest to idealne rozwiązanie dla przekierowań, gdy chcesz tylko tymczasowo przekierować do alternatywnej zawartości.

Wymuś HTTPS

W dzisiejszych czasach zabezpieczenie witryny certyfikatem SSL jest bardzo ważne. Witryny, które tego nie robią, będą teraz wyświetlać ostrzeżenie na pasku przeglądarki, co może podważyć zaufanie do Twojej witryny. Ponadto Google faktycznie karze witryny, które nie dostarczają treści za pośrednictwem protokołu HTTPS, przez co mogą ucierpieć Twoje rankingi wyszukiwania.

Nawet jeśli zainstalujesz certyfikat SSL w swojej witrynie, nadal możesz stwierdzić, że użytkownicy mogą odwiedzać wersję witryny inną niż HTTPS. Jeśli to zrobią, nadal będą otrzymywać ostrzeżenie w swojej przeglądarce, mimo że masz zainstalowany certyfikat SSL. Aby temu zapobiec, musisz wymusić cały ruch z niezabezpieczonej wersji HTTP do bezpiecznej wersji HTTPS. Jest to bardzo łatwe do zrobienia za pomocą pliku .htaccess, dodając następujący kod:

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

Blokuj adresy IP

Jeśli otrzymujesz ruch spamowy lub Twoja witryna jest poddawana nadużyciom/próbom hakowania z niektórych adresów IP, możesz podjąć działania, korzystając z pliku .htaccess, blokując ruch z tego adresu IP za pomocą następującego kodu w pliku .htaccess.

 Deny from 94.66.58.135

Jeśli chcesz dowiedzieć się, jak możesz zablokować adres IP w inny sposób, przeczytaj ten przewodnik.

Zapobiegaj łączeniu obrazów

Hotlinking to miejsce, w którym ktoś osadza obraz w Twojej witrynie we własnej. Może to być problematyczne (i to nie tylko z punktu widzenia praw autorskich), ponieważ oznacza to, że serwer może pracować w nadgodzinach, aby wyświetlić obrazy w witrynie innej osoby. Możesz temu zapobiec, używając pliku .htaccess, aby uniemożliwić komuś umieszczanie Twoich obrazów na swojej stronie internetowej za pomocą następującego kodu:

 RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mycompanyname.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yahoo.com [NC] RewriteRule \.(jpg|jpeg|png|gif)$ - [F]

Nie zapomnij zastąpić 'nazwa_firmy.com' adresem URL swojej witryny!

Ten kod blokuje WSZYSTKIE strony internetowe przed hotlinkowaniem obrazów w Twojej witrynie. Ponieważ nie chcesz zatrzymywać linków do obrazów w wyszukiwarkach, musisz ręcznie dodać je do białej listy. Sekcja kodu, która to osiąga, to ta część tutaj:

 RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mycompanyname.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yahoo.com [NC]

Możesz oczywiście dodać dowolne inne witryny, które chcesz umieścić na białej liście. Wreszcie ostatnia linia kodu ( RewriteRule .(jpg|jpeg|png|gif)$ - [F] ) określa, jakie typy mediów są blokowane.

Chroń pliki wtyczek i motywów

Pliki PHP wtyczek i motywów mogą czasami być celem hakerów, którzy próbują wstrzyknąć do nich złośliwy kod. Możesz użyć pliku .htaccess, aby zapobiec dostępowi do tych plików, używając następującego kodu:

 RewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/exclude\.php RewriteCond %{REQUEST_URI} !^/wp-content/plugins/directory/to/exclude/ RewriteRule wp-content/plugins/(.*\.php)$ - [R=404,L] RewriteCond %{REQUEST_URI} !^/wp-content/themes/file/to/exclude\.php RewriteCond %{REQUEST_URI} !^/wp-content/themes/directory/to/exclude/ RewriteRule wp-content/themes/(.*\.php)$ - [R=404,L]

Chroń podstawowe pliki WordPress

Zdecydowanie zaleca się, aby niektóre podstawowe pliki WordPress były niedostępne dla użytkowników niebędących administratorami. Jest to coś, o co dba większość dostawców usług hostingowych, ale nie zawsze tak jest. Jeśli chcesz uniemożliwić dostęp do poufnych plików WordPress, możesz użyć następującego kodu w swoim pliku .htaccess:

 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^wp-admin/includes/ - [F,L] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L] </IfModule>

Zapobiegaj przeszukiwaniu Twojej witryny przez złe boty

Boty to w zasadzie zautomatyzowane skrypty internetowe, które mogą skanować miliony stron internetowych dziennie. Google używa botów do skanowania stron internetowych i pobiera dane z tych skanów w celu aktualizacji swoich ogromnych baz danych wyszukiwania. Mam nadzieję, że bot Google jest całkowicie nieszkodliwy! Istnieją jednak inne boty, których możesz nie chcieć skanować swojej witryny. Niektóre z tych „złych” botów mogą robić nic więcej niż tylko zużywać niepotrzebną przepustowość serwera, podczas gdy inne mogą aktywnie szukać luk w Twojej witrynie, które można wykorzystać. Twój plik .htaccess może zostać użyty do zablokowania tych „złych” botów.

Pierwszą rzeczą, którą należy się dowiedzieć, jest to, jakie boty chcesz blokować? Być może już wiesz, ale jeśli nie, możesz sprawdzić zaktualizowaną listę botów umieszczonych na czarnej liście, które są uważane za podejrzane. Gdy masz już swoją listę, możesz dodać je do swojego pliku .htaccess w następujący sposób:

 #Block bad bods requests SetEnvIfNoCase user-Agent ^FrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Java.* [NC,OR] SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR] SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR] SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR] SetEnvIfNoCase user-Agent ^Zeus [NC]

Po zapisaniu zmian wszystkie boty z listy, które teraz odwiedzają Twoją witrynę, otrzymają 403 Zabronioną stronę.

Chroń wp-config.php

Ogólnie zaleca się ograniczenie dostępu do pliku wp-config.php, ponieważ zawiera on poświadczenia dostępu do bazy danych.

Aby to zrobić za pomocą .htaccess, po prostu skopiuj i wklej następujące wiersze do pliku .htaccess:

 <files wp-config.php>order allow,denydeny from all</files>

Wyłącz wykonywanie PHP

Bardzo skutecznym sposobem ochrony przed próbami włamania jest zapobieganie wykonywaniu PHP w określonych katalogach, w których nie jest to potrzebne. Na przykład katalogi /wp-includes/ i /wp-content/uploads/ to popularne lokalizacje używane przez hakerów do umieszczania kodu umożliwiającego nieautoryzowany dostęp do serwera (tzw. pliki backdoora). Wyłączenie wykonywania PHP w tych katalogach nie usunie tych plików, ale zamiast tego zatrzyma wykonywanie ich kodu. Aby to zrobić, dodaj następujący kod do pliku .htaccess.

 <Files *.php>deny from all</Files>

Przekonasz się również, że wielu dostawców hostingu, w tym Pressidium, już domyślnie wyłączyło wykonywanie PHP w tych katalogach w celu zwiększenia poziomu bezpieczeństwa dla swoich klientów.

Wyłącz dostęp XML-RPC

Jest to częsty problem często spotykany przez zespoły wsparcia w firmach hostingowych, w których instalacja WordPressa otrzymuje tysiące żądań „POST /xmlrpc.php HTTP/1.1”, które często są związane z atakiem z jednego lub wielu adresów IP. Jednym z rozwiązań tego problemu jest wyłączenie XML-RPC.

Aby wyłączyć XML-RPC w swojej witrynie, dodaj te wiersze kodu do pliku .htaccess:

 # Block WordPress xmlrpc.php requests <Files xmlrpc.php> order deny,allow deny from all </Files> # END protect xmlrpc.php

Warto zauważyć, że plik xmlrpc.php jest niezbędny, jeśli aktualizujesz zawartość za pomocą aplikacji mobilnych lub połączeń zdalnych. Jeśli więc rozważasz wyłączenie go na stałe, upewnij się, że nie jest on potrzebny do Twojej pracy.

Wymuś pobieranie plików

Dla użytkownika witryny może być bardzo denerwujące, że gdy chcesz pobrać plik ze strony internetowej (na przykład PDF), plik zamiast tego otwiera się w oknie przeglądarki. Jeśli masz w swojej witrynie pliki, które są udostępniane użytkownikom jako elementy do pobrania, możesz edytować plik .htaccess i dodać wiersz kodu, który może wymusić pobranie określonych typów plików, a nie ich wyświetlanie bezpośrednio z przeglądarki. Poniżej zobaczysz ten kod wraz z kilkoma przykładami typów plików, które użytkownicy mogą pobierać bezpośrednio.

 AddType application/octet-stream .avi .mpg .mov .pdf .xls .mp4

Wyślij niestandardowe nagłówki HTTP

Zaawansowani użytkownicy mogą chcieć mieć możliwość wysyłania nagłówków HTTP klientów, korzystając z dyrektywy Apache's Header. Aby to zrobić, dodaj następujący kod do pliku .htaccess.

 Header add my-custom-header "my custom header value"

Powyższy przykład poinstruuje Apache, aby dodał nagłówek o nazwie „my-custom-header” dla każdego żądania do serwera. Jeśli wdrożymy tę aktualizację, a następnie sprawdzimy naszą zakładkę sieci w narzędziach naszej przeglądarki, możemy potwierdzić jej odpowiedź, jak pokazano poniżej.

mój niestandardowy nagłówek

Ta technika jest bardzo powszechna w przypadku dodawania nagłówków pamięci podręcznej i zabezpieczeń lub dodawania zestawu znaków języka. Spójrz na ten artykuł dla niektórych popularnych zastosowań. Na tej liście możesz również znaleźć szczegółową listę nagłówków, z którymi możesz poeksperymentować.

Wniosek

Mam nadzieję, że ten artykuł dał ci wgląd w rzeczy, które można osiągnąć za pomocą pliku .htaccess. Oczywiście, wiele z tych rzeczy można osiągnąć za pomocą wtyczki, ale zawsze warto zrozumieć, co dokładnie dzieje się „pod maską”, zwłaszcza jeśli wtyczka nie działa zgodnie z oczekiwaniami. Opanowanie edycji pliku .htaccess zamiast polegania na wtyczce pomaga również zwiększyć poziom wiedzy na temat WordPressa… i to zawsze dobrze!