Ce este fișierul .htaccess și cum îl utilizați în WordPress?

Publicat: 2020-10-27

S-ar putea să fi auzit de fișierul .htaccess înainte, dar nu aveai nicio idee despre ce este sau ce face. În acest articol vom arunca atenția asupra fișierului .htaccess și vom dezvălui misterele acestuia odată pentru totdeauna. Până la sfârșitul acestui articol, veți înțelege că fișierul .htaccess este, ce face fișierul .htaccess și cum puteți utiliza fișierul .htaccess pentru a realiza anumite sarcini. Haide să mergem!

Ce este fișierul .htaccess?

Să începem prin a ne uita la exact ce este un fișier .htaccess. „htaccess” înseamnă „acces hipertext”. Acest nume descrie pentru ce a fost folosit fișierul când a fost dezvoltat pentru prima dată. Pe scurt, a fost folosit pentru a controla accesul utilizatorilor la anumite fișiere și directoare. Lucrurile au evoluat de când .htaccess a apărut pentru prima dată pe scenă și acum este folosit într-o serie de moduri diferite în WordPress, pe care le vom analiza în detaliu.

.htaccess este un fișier de bază WordPress de configurare care este utilizat pentru a suprascrie setările specifice ale serverului web Apache (Apache este un software utilizat în mod obișnuit pe serverele web) sau pentru a implementa diverse alte funcții care afectează modul în care funcționează site-ul dvs. web. Este inclus în toate instalările WordPress imediat după ce activați permalinkurile și se află de obicei în directorul rădăcină al instalării. Îl puteți vedea sau edita accesând fișierele de instalare printr-un client FTP precum FileZilla sau WinSCP.

Notă: Asigurați-vă că preferințele clientului dvs. FTP sunt modificate, astfel încât fișierele ascunse să fie afișate.

În mod implicit, conținutul unui fișier .htaccess al unui site web WordPress, odată ce permalinkurile sunt activate, arată astfel:

 # 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

În cazul în care nu știți deja, „#” de la începutul unui rând este un comentariu. Liniile de comentarii # BEGIN WordPress și # END WordPress sunt folosite astfel încât conținutul să rămână organizat atunci când mai multe reguli sunt aplicate ulterior de către pluginuri sau de către dvs. Orice adăugare viitoare la fișierul .htaccess ar trebui să fie plasată în afara acestor linii.

Fișierul .htaccess este utilizat în principal în WordPress pentru a controla permalink-urile de pe site-ul dvs. web. De asemenea, poate fi folosit ca instrument puternic pentru diverse alte sarcini, cum ar fi controlul accesului la anumite fișiere, îmbunătățirea securității și performanței, trimiterea antetelor personalizate și multe altele.

Notă: Este important ca orice modificări aduse fișierului .htaccess al site-ului dvs. web să fie făcute cu atenție. Chiar și o simplă greșeală de tipar în acest fișier ar putea duce la prăbușirea site-ului dvs. Ca atare, dacă nu sunteți sigur cu privire la modificările pe care le faceți, în mod ideal ar trebui să le testați pe un server de staging înainte de a aplica pe site-ul dvs. live.

Lucruri pe care le puteți face cu fișierul dvs. .htaccess

Deci, să vedem cum puteți prelua mai mult control asupra site-ului dvs. cu ajutorul fișierului .htaccess.

Redirecționare între „www” și „non-www”

O utilizare comună a fișierului .htaccess este setarea unei redirecționări permanente de la „domeniul tău liber” (versiunea non-www) la versiunea sa www sau invers.

Înainte de a continua, asigurați-vă că ambele domenii sunt setate în DNS pentru a se rezolva la adresa IP corectă a serverului.

De asemenea, în zona dvs. de administrare WordPress, verificați dacă domeniul nu este setat ca principal.

URL-ul site-ului de setări

Puteți redirecționa domeniul www către cel gol adăugând următorul cod în fișierul .htaccess, sub conținutul implicit.

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

Pentru a realiza exact opusul (dacă www este setat ca principal) și a redirecționa de la un domeniu „non-www” la „www”, ar trebui să inserați acest cod:

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

Dacă nu sunteți familiarizat cu expresiile regulate folosite în cod și doriți să înțelegeți mai multe despre sintaxă, nu ezitați să vă faceți timp și să citiți mai multe despre REGEX. HT Access Cheat Sheet este un alt instrument foarte util

301 Redirecționare (redirecționare permanentă)

O redirecționare 301 le spune motoarelor de căutare că o adresă URL a fost înlocuită permanent cu alta și, de asemenea, redirecționează un utilizator către acel vizitator către o nouă adresă URL (corectă!). .

Iată fragmentul de cod care, atunci când este plasat într-un fișier .htaccess, face treaba:

 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]

În exemplul de mai sus, am redirecționat utilizatorii de pe site-ul web „numele companiei.com la „example.com”. Desigur, veți dori să înlocuiți aceste secțiuni cu propriile dvs. adrese URL.

Acest lucru se va aplica și pentru toate căile din domeniu. Ceea ce înseamnă că, de exemplu, numele companiei mele.com/nou.html va redirecționa către example.com/nou.html

302 Redirecționare (redirecționare temporară)

Când un conținut este mutat temporar într-o altă locație, este utilizată o redirecționare 302. Sintaxa este aceeași ca în 301. De exemplu:

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

Din punct de vedere practic, rezultatul este exact același, dar cu o diferență importantă. Cu o redirecționare 301, motoarele de căutare li se spune că pagina nu mai este live și, în acest sens, vor încuraja motoarele de căutare să renunțe la această pagină din rezultatele căutării. În cazul unei redirecționări 302, adresa URL inițială va fi accesată cu crawlere de către Google și va continua să indexeze în loc de noua adresă URL. Ca atare, este soluția ideală pentru o redirecționare atunci când doriți să redirecționați doar temporar către conținut alternativ.

Forțați la HTTPS

Securizarea site-ului dvs. cu un certificat SSL este foarte important de făcut în aceste zile. Site-urile web care nu fac acest lucru vor afișa acum un avertisment în bara browserului care poate submina încrederea în site-ul dvs. În plus, Google penalizează de fapt site-urile web care nu furnizează conținut prin HTTPS și, prin urmare, clasamentele dvs. de căutare ar putea avea de suferit.

Chiar și atunci când instalați un certificat SSL pe site-ul dvs. web, puteți descoperi că utilizatorii pot vizita versiunea non-HTTPS a site-ului dvs. Dacă fac acest lucru, vor primi în continuare avertismentul în browser, în ciuda faptului că aveți un certificat SSL instalat. Pentru a opri acest lucru, trebuie să forțați tot traficul de la versiunea HTTP nesigură la versiunea HTTPS sigură. Acest lucru este foarte ușor de făcut folosind fișierul .htaccess adăugând următorul cod:

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

Blocați adresele IP

Dacă primiți trafic spam sau site-ul dvs. web suferă din cauza unor încercări de abuz/hacking de la anumite adrese IP, puteți lua măsuri folosind fișierul .htaccess blocând traficul de la acea adresă IP folosind următorul cod din fișierul .htaccess.

 Deny from 94.66.58.135

Dacă doriți să aflați cum puteți bloca o adresă IP în alte moduri, vă rugăm să citiți acest ghid.

Preveniți legătura directă a imaginilor

Hotlinkingul de imagini este în cazul în care cineva încorporează o imagine pe site-ul dvs. în propriul său site. Acest lucru poate fi problematic (și nu doar din perspectiva dreptului de autor), deoarece înseamnă că serverul dvs. trebuie să lucreze eventual ore suplimentare pentru a difuza imagini pe site-ul altcuiva. Puteți opri acest lucru utilizând fișierul .htaccess pentru a bloca pe cineva să vă înglobeze imaginile în site-ul său web cu următorul cod:

 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]

Nu uitați să înlocuiți „numele companiei.com” cu adresa URL a site-ului dvs.!

Acest cod blochează TOATE site-urile web să nu trimită imagini de pe site-ul dvs. Pentru că nu doriți să opriți motoarele de căutare să trimită imagini, va trebui să le puneți manual pe lista albă. Secțiunea codului care realizează acest lucru este această parte aici:

 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]

Desigur, puteți include orice alte site-uri web pe care doriți să le includeți pe lista albă. În cele din urmă, ultima linie din cod ( RewriteRule .(jpg|jpeg|png|gif)$ - [F] ) dictează ce tipuri de media sunt blocate.

Protejați fișierele plugin și teme

Fișierele PHP cu pluginuri și teme pot fi uneori ținta hackerilor care încearcă să injecteze cod rău intenționat în ele. Puteți utiliza fișierul .htaccess pentru a preveni accesul la aceste fișiere folosind următorul cod:

 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]

Protejați fișierele de bază WordPress

Este foarte recomandat ca unele fișiere de bază WordPress să fie inaccesibile utilizatorilor care nu sunt administratori. Acesta este ceva de care se ocupă majoritatea furnizorilor de găzduire pentru tine, dar nu este întotdeauna cazul. Dacă doriți să împiedicați accesul la fișierele WordPress sensibile, puteți utiliza următorul cod în fișierul dvs. .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>

Împiedicați roboții răi să vă acceseze site-ul web

Boții sunt practic scripturi web automatizate care pot scana milioane de site-uri web pe zi. Google folosește roboți pentru a scana site-urile web și preia datele din aceste scanări pentru a-și actualiza bazele de date masive de căutare. Sperăm că un bot Google este complet inofensiv! Există totuși și alți roboți pe care s-ar putea să nu doriți să vă scanați site-ul. Unii dintre acești roboți „răi” nu fac altceva decât să consume lățimea de bandă inutilă a serverului, în timp ce alții pot căuta în mod activ punctele slabe care pot fi exploatate în site-ul dvs. Fișierul dvs. .htaccess poate fi folosit pentru a bloca acești roboți „răi”.

Primul lucru de aflat este ce roboți doriți să blocați? Poate că știți deja, dar dacă nu, puteți consulta o listă actualizată de roboți pe lista neagră care sunt considerați suspecti. Când aveți lista, le puteți adăuga în fișierul dvs. .htaccess astfel:

 #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]

După salvarea modificărilor, toți roboții din listă care acum vă vizitează site-ul web vor primi o pagină 403 Interzis.

Protejați wp-config.php

În general, este recomandat să restricționați accesul la fișierul wp-config.php, deoarece conține acreditările de acces la baza de date.

Pentru a face acest lucru prin .htaccess, pur și simplu copiați și lipiți următoarele linii în fișierul dvs. .htaccess:

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

Dezactivați execuția PHP

O modalitate foarte eficientă de a fi protejat de tentativele de hack este prevenirea execuției PHP în anumite directoare unde nu este necesar. De exemplu, directoarele /wp-includes/ și /wp-content/uploads/ sunt locații populare utilizate de hackeri pentru a plasa cod care permite accesul neautorizat la server (cunoscut sub numele de fișiere backdoor). Dezactivarea execuției PHP în aceste directoare nu va șterge acele fișiere, ci le va opri din executarea codului lor. Pentru a face acest lucru, adăugați următorul cod în fișierul dvs. .htaccess.

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

Veți descoperi, de asemenea, că mulți furnizori de găzduire, inclusiv Pressidium, au dezactivat deja în mod implicit execuția PHP în aceste directoare pentru a-și spori nivelul de securitate pentru clienții lor.

Dezactivați accesul XML-RPC

Este o problemă frecvent întâlnită adesea de echipele de asistență la companiile de găzduire, unde o instalare WordPress primește mii de solicitări „POST /xmlrpc.php HTTP/1.1” care sunt adesea legate de un atac de la o singură sau mai multe adrese IP. O soluție pentru aceasta este dezactivarea XML-RPC.

Pentru a dezactiva XML-RPC pentru site-ul dvs., adăugați aceste linii de cod în fișierul .htaccess:

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

Este demn de remarcat faptul că xmlrpc.php este necesar dacă vă actualizați conținutul folosind aplicații mobile sau conexiuni la distanță. Deci, dacă vă gândiți să îl dezactivați definitiv, asigurați-vă că nu este necesar pentru munca dvs.

Forțați descărcarea fișierelor

Poate fi extrem de enervant ca utilizator al site-ului web că, atunci când doriți să descărcați un fișier de pe un site web (de exemplu un PDF), fișierul se deschide în fereastra browserului. Dacă aveți fișiere pe site-ul dvs. web care sunt furnizate ca elemente descărcabile pentru utilizatorii dvs., atunci puteți edita fișierul .htaccess și puteți adăuga o linie de cod care poate forța anumite tipuri de fișiere să fie descărcate și nu afișate direct din browser. Veți vedea mai jos acest cod împreună cu câteva exemple de tipuri de fișiere pe care ați dori ca utilizatorii să le poată descărca direct.

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

Trimiteți anteturi HTTP personalizate

Utilizatorii avansați ar putea dori să poată trimite antete HTTP clienților profitând de directiva Apache’s Header. Pentru a face acest lucru, adăugați următorul cod în fișierul dvs. .htaccess.

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

Exemplul de mai sus i-ar spune Apache să adauge un antet numit „my-custom-header” pentru fiecare cerere către server. Dacă implementăm această actualizare și apoi verificăm fila noastră de rețea în instrumentele browserului nostru, putem confirma răspunsul acesteia, așa cum se arată mai jos.

antetul meu personalizat

Această tehnică este foarte comună pentru adăugarea anteturilor cache și de securitate sau pentru adăugarea unui set de caractere de limbă. Aruncă o privire la acest articol pentru câteva utilizări populare. Puteți găsi, de asemenea, o listă detaliată de anteturi pe care să le experimentați în această listă.

Concluzie

Sperăm că acest articol v-a oferit câteva informații despre lucrurile care pot fi realizate cu fișierul .htaccess. Sigur, multe dintre aceste lucruri pot fi realizate folosind un plugin, dar este întotdeauna util să înțelegeți exact ce se întâmplă „sub capotă”, mai ales dacă un plugin nu funcționează așa cum vă așteptați. Stăpânirea modului de editare a fișierului .htaccess, mai degrabă decât a te baza pe un plugin, ajută, de asemenea, să-ți îmbunătățești nivelul de expertiză WordPress... și asta este întotdeauna un lucru bun!