Biblioteka Paprastos instrukcijos, kaip dirbti su Profitserver paslauga
pagrindinis Biblioteka Konfigūruojamas .htaccess failas

Konfigūruojamas .htaccess failas


Šiame straipsnyje išnagrinėsime pagrindinius .htaccess failo, kuris yra labai svarbus siekiant pagerinti SEO, naudojimo principus. Šis failas užtikrina tinkamą paieškos sistemų puslapių indeksavimą. Išmoksime valdyti peradresavimus, konfigūruoti saugumą ir padidinti našumą. Be to, pateiksime patarimų, kaip savarankiškai konfigūruoti šį failą.

Kodėl reikalingas .htaccess

Failas .htaccess veikia kaip savotiškas „nuotolinis valdymas“ žiniatinklio kūrėjams „Apache“ serveriuose. Ji siūlo patogius įrankius įvairiems parametrams reguliuoti ir svetainės elgsenai valdyti. Kai tiesioginė prieiga prie pagrindinių serverio konfigūracijos failų nepasiekiama (kaip dažnai būna, pavyzdžiui, virtualaus prieglobos atveju), .htaccess tampa naudingu įrankiu atlikti būtinus pakeitimus.

Htaccess dažnai yra jūsų svetainės šakniniame aplanke arba tuose aplankuose, kur reikia specialios konfigūracijos. Pavyzdžiui, jei naudojate „WordPress“, konfigūraciją galima atlikti naudojant „Yoast SEO“ papildinį, kurį aptarėme straipsnyje apie Konfigūruojamas robots.txt. Kitais atvejais pakanka nueiti į reikiamą aplanką ir redaguoti esamą .htaccess failą arba jį sukurti, jei jis dar nebuvo sukurtas.

.htaccess failo konfigūravimas

301 Peradresuoti htaccess

301 peradresavimas .htaccess faile gali būti lyginamas su nuolatiniu peradresavimu svetainėje. Jis informuoja paieškos sistemas ir naršykles, kad puslapis nuolat yra nauju adresu ir siūlo atnaujinti žymes ir indeksuoti. Toks peradresavimas paprastai naudojamas, kai puslapis perkeliamas arba ištrinamas, siekiant išsaugoti jo reitingą paieškos rezultatuose ir nukreipti lankytojus į naują vietą.

Norėdami suaktyvinti peradresavimus, turite įjungti atitinkamą komandą .htaccess faile:

RewriteEngine on

Po to galite sukonfigūruoti paprasčiausią peradresavimo formą:

<IfModule mod_rewrite.c>
RewriteEngine On
Redirect 301 /old-page.html /new-page.html
</IfModule>

Panašus peradresavimas naudojant RedirectPermanent direktyva atrodo taip:

<IfModule mod_rewrite.c>
RewriteEngine On
Redirect permanent /old-page.html http://new-domain.ru/new-page.html
</IfModule>

Tai yra lengviausiai konfigūruojami peradresavimo būdai. Panagrinėkime konfigūraciją, kuri naudoja kitus, pažangesnius peradresavimo tipus su mod_rewrite modulis:

<IfModule mod_rewrite.c>
RewriteEngine On
    
# Redirecting from one page to another
RewriteRule ^old-page.html$ http://www.example.com/new-page.html [R=301,L]

# Redirecting all traffic from one domain to another
RewriteCond %{HTTP_HOST} ^oldsite.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.oldsite.com$
RewriteRule ^(.*)$ http://www.newsite.com/$1 [R=301,L]
    
# Redirecting from www to non-www (or vice versa)
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

# Redirecting from HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

# Redirecting from one subdomain to another
RewriteCond %{HTTP_HOST} ^subdomain1.example.com$
RewriteRule ^(.*)$ http://subdomain2.example.com/$1 [R=301,L]
</IfModule>

302 peradresavimas .htaccess, nurodantis laikiną perkėlimą, sutinkamas daug rečiau. Štai tokio nustatymo pavyzdys:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^old-page.html$ /new-page.html [R=302,L]
</IfModule>

direktyva ErrorDocument

Šis nustatymas leidžia valdyti, ką vartotojas matys, kai svetainėje įvyksta HTTP klaidų. Vietoj standartinio klaidos pranešimo galite parodyti savo puslapį, kuris lankytojui bus informatyvesnis ir padės suprasti, kas atsitiko. Naudodami tiesiog vadovaukitės šia sintaksė:

ErrorDocument <error_code> <URL_page>

Pavyzdžiui,

ErrorDocument 404 /errors/not_found.html

Reiškia, kai a 404 įvyksta klaida, puslapis adresu /errors/not_found.html bus atidaryta. Absoliutūs URL nurodomi panašiai:

ErrorDocument 500 http://example.com/errors/server_error.html

Šis pavyzdys rodo ekraną server_error.html puslapyje šiuo adresu: http://example.com/errors/ įvykus a 500 klaida.

Prieigos prie svetainių katalogo uždraudimas

.htaccess faile yra komanda Uždrausti iš viso, kuris padeda uždrausti prieigą prie tam tikrų aplankų ar failų jūsų žiniatinklio serveryje. Tai gali būti naudinga, jei norite paslėpti privačią informaciją ar svarbius failus nuo svetainės lankytojų, kad užtikrintumėte duomenų saugumą.

Norėdami išjungti sąrašą (peržiūrėti visus galimus katalogus), turite pridėti eilutę:

Options -Indexes

Prieigos prie konkretaus katalogo blokavimo pavyzdys atrodo taip:

<Directory /path_to_your_directory>
Order Deny,Allow
Deny from all
</Directory>

Taip pat galite uždrausti prieigą prie vieno failo:

<Files "file.php">
Order Deny,Allow
Deny from all
</Files>

Arba failų diapazonui pagal plėtinį:

<FilesMatch "\.(txt|log|bak)$"> # Select the desired extensions, in the example: txt, log, bak
Order Deny,Allow
Deny from all
</FilesMatch>

Prieigos blokavimas pagal IP

Prieigos blokavimas pagal IP .htaccess faile yra metodas, leidžiantis apriboti prieigą prie savo svetainės konkretiems IP adresams arba jų grupėms. Tai gali būti naudinga, jei norite užkirsti kelią tam tikriems žmonėms arba nepageidaujamiems robotams pasiekti savo svetainę ar konkrečias jos dalis.

Vieno IP adreso blokavimas atliekamas naudojant komandą:

Order Deny,Allow
Allow from all
Deny from 11.22.33.44

Kelių IP adresų blokavimas atliekamas panašiai dubliuojant "Uždrausti nuo“ eilutę su reikalingais adresais.

Norėdami blokuoti IP adresų diapazoną:

Order Deny,Allow
Allow from all
Deny from 11.11.11.11/24

Jei norite leisti prieigą tik konkretiems IP, pridėkite kodą:

Order Deny,Allow
Deny from all
Allow from 11.22.33.44

Norėdami visiškai uždrausti prieigą, naudokite direktyvą Uždrausti iš viso, o norėdami blokuoti adresus pagal kaukę, nurodykite Uždrausti iš 11.22.

Kur 11.22 yra IP adresas kaukė.

Lankytojų blokavimas naudojant vartotojo agentą

Naudotojų blokavimas naudojant vartotojo agentą .htaccess faile yra būdas kontroliuoti, kas gali pasiekti jūsų žiniatinklio serverį, remiantis informacija apie lankytojo naudojamą naršyklę. „User-Agent“ eilutėje yra duomenų apie naršyklę, kurią asmuo naudoja sąveikaudamas su jūsų serveriu, ir šios informacijos dėka galite apriboti tam tikrų vartotojų prieigą.

Dažniausias vartotojo agento blokavimo būdas yra naudoti mod_rewrite:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^Bot1 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot2 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot3 [NC]
RewriteRule ^.*$ - [F,L]
</IfModule>

Šiame pavyzdyje:

  1. RewriteCond %{HTTP_USER_AGENT} naudojamas vartotojo agento eilutei patikrinti.
  2. ^Bot1, ^Bot2, ^Bot3 yra vartotojo agento eilučių, kurias norime blokuoti, pavyzdžiai. NC modifikatoriai rodo, kad palyginimas neturėtų būti skiriamas didžiosioms ir mažosioms raidėms.
  3. RewriteRule ^.*$ – [F,L] taikoma užklausai, jei įvykdoma kuri nors iš RewriteCond sąlygų. Jis siunčia atsakymą su 403 uždraustos būsenos kodu (F) ir sustabdo taisyklių apdorojimą (L).

Talpyklos kaupimas naudojant htaccess

Talpyklos konfigūravimas naudojant .htaccess failą padeda pagreitinti svetainę, nes naudotojai ją įkelia greičiau. Tai veikia taip: tam tikri failai, pvz., vaizdai, CSS stiliai ir „JavaScript“ scenarijai, po pirmojo įkėlimo išsaugomi vartotojo naršyklės talpykloje. Dabar naršyklė gali naudoti šiuos failus iš talpyklos, o ne iš naujo įkelti juos iš serverio kiekvieną kartą, kai vartotojas apsilanko puslapyje. Tai sumažina įkėlimo laiką ir pagerina svetainės našumą.

Apsvarstykite pavyzdį:

# Enable caching for images for 1 month
<FilesMatch "\.(jpg|jpeg|png|gif|svg)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>

# Enable caching for CSS and JavaScript for 1 week
<FilesMatch "\.(css|js)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>

Kita vertus, ištekliams, kurie dažnai atnaujinami, būtina išjungti talpyklą:

# Excluding caching for HTML pages and XML files
<FilesMatch "\.(html|xml)$">
Header set Cache-Control "no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "0"
</FilesMatch>

Svetainės našumo optimizavimas

Geriausios mod_deflate bei mod_gzip Apache moduliai padeda suspausti informaciją, kurią serveris siunčia į vartotojų įrenginius. Dėl to failai yra mažesni, o tai savo ruožtu pagreitina puslapio įkėlimą. Tačiau svarbu atminti, kad šių modulių palaikymas ir konfigūracija gali skirtis priklausomai nuo jūsų serverio.

Naudojimo pavyzdys mod_deflate modulis:

<IfModule mod_deflate.c>
# Compressing text file types
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>

Pavyzdys skirtas mod_gzip:

<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ # Enabling compression for files with extensions .html, .txt, .css, .js, .php, .pl
mod_gzip_item_include mime ^application/x-javascript.* # Enabling compression for MIME types starting with application/x-javascript
mod_gzip_item_include mime ^text/.* # Enabling compression for MIME types starting with text/
mod_gzip_item_exclude mime ^image/.* # Excluding from compression MIME types starting with image/
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* # Excluding already compressed data (responses with the Content-Encoding: gzip header)
</IfModule>

Aptarėme dažniausiai naudojamas direktyvas. Su visomis failo galimybėmis galite susipažinti oficialūs dokumentai.

Kaip patikrinti .htaccess failo funkcionalumą

Norėdami patikrinti, ar jūsų .htaccess failas veikia svetainėje, galite atlikti šiuos veiksmus:

  1. Tyčia pakeiskite .htaccess failą su klaida. Atsakydamas serveris turėtų pateikti klaidą. Šis metodas parodo, ar failo operacija paprastai taikoma serveryje.
  2. Patikrinkite konkrečių atliktų pakeitimų funkcionalumą. Pavyzdžiui, šiek tiek pakoreguokite vieną iš parametrų ir įvertinkite, ar yra pakeitimų.
  3. Patikrinkite puslapio būsenos kodą, jei pakeitimai susiję su serverio atsakymu. Kaip tai padaryti, mes anksčiau aprašėme straipsnyje HTTP klaidų kodai: visas serverio klaidų sąrašas.
  4. Žr. serverio žurnalus. Jie rodo visas klaidas, susijusias su .htaccess failo veikimu.
  5. Atlikite testavimą naudodami internetines paslaugas ar įrankius.

Svarbu suprasti, kad norint patikrinti .htaccess failo funkcionalumą, nereikia atlikti visų veiksmų vienu metu. Pakanka iš sąrašo pasirinkti tinkamiausią metodą ir jį naudoti.

Išvada

.htaccess failo konfigūravimas yra svarbus žingsnis optimizuojant ir apsaugant „Apache“ serverį. Ištyrėme, kaip šis failas padeda valdyti peradresavimus, suglaudinti turinį ir užtikrinti saugumą. Įvaldę darbą su .htaccess, gausite galingą įrankį svetainių našumui ir funkcionalumui pagerinti.

❮ Ankstesnis straipsnis FTP serverio sąranka
Kitas straipsnis ❯ Kaip sukonfigūruoti žiniatinklio serverį (Apache-PHP-MySQL/MariaDB) sistemoje Linux

Klauskite mūsų apie VPS

Mes visada pasiruošę atsakyti į jūsų klausimus bet kuriuo dienos ar nakties metu.