Tässä artikkelissa tutkimme .htaccess-tiedoston käytön perusperiaatteita, sillä se on ratkaisevan tärkeä hakukoneoptimoinnin tehostamiseksi. Tämä tiedosto varmistaa, että hakukoneet indeksoivat sivut oikein. Opimme hallitsemaan uudelleenohjauksia, määrittämään suojausta ja parantamaan suorituskykyä. Lisäksi annamme vinkkejä tämän tiedoston määrittämiseen itsenäisesti.
Miksi .htaccess tarvitaan
.htaccess-tiedosto toimii eräänlaisena "kaukosäätimenä" Apache-palvelimien verkkokehittäjille. Se tarjoaa käteviä työkaluja erilaisten parametrien säätämiseen ja verkkosivuston toiminnan hallintaan. Kun suora pääsy palvelimen tärkeimpiin määritystiedostoihin ei ole käytettävissä (kuten usein tapahtuu esimerkiksi virtuaalisen hosting-palvelun yhteydessä), .htaccessista tulee hyödyllinen työkalu tarvittavien muutosten tekemiseen.
Htaccess sijaitsee usein sivustosi juurikansiossa tai niissä kansioissa, joissa tarvitaan erityistä määritystä. Jos esimerkiksi käytät WordPressiä, määritykset voidaan tehdä Yoast SEO -laajennuksen kautta, josta keskustelimme artikkelissa robots.txt-tiedoston määrittäminen . Muissa tapauksissa riittää, että siirryt tarvittavaan kansioon ja muokkaat olemassa olevaa .htaccess-tiedostoa tai luot sen, jos sitä ei ole vielä luotu.
Määritetään .htaccess-tiedosto
301 Uudelleenohjaa htaccess
301-uudelleenohjausta .htaccess-tiedostossa voidaan verrata pysyvään uudelleenohjaukseen verkkosivustolla. Se ilmoittaa hakukoneille ja selaimille, että sivu on nyt pysyvästi uudessa osoitteessa ja ehdottaa kirjanmerkkien päivittämistä ja indeksointia. Tällaista uudelleenohjausta käytetään yleensä, kun sivu siirretään tai poistetaan sen sijoituksen säilyttämiseksi hakutuloksissa ja vierailijoiden ohjaamiseksi uuteen sijaintiin.
Aktivoidaksesi uudelleenohjaukset, sinun on otettava käyttöön vastaava komento .htaccess-tiedostossa:
RewriteEngine on
Tämän jälkeen voit määrittää yksinkertaisimman uudelleenohjausmuodon:
<IfModule mod_rewrite.c>
RewriteEngine On
Redirect 301 /old-page.html /new-page.html
</IfModule>
Samankaltainen uudelleenohjaus RedirectPermanent -direktiivin avulla näyttää tältä:
<IfModule mod_rewrite.c>
RewriteEngine On
Redirect permanent /old-page.html http://new-domain.ru/new-page.html
</IfModule>
Nämä ovat helpoimmat uudelleenohjausmenetelmät määrittää. Tarkastellaan kokoonpanoa, joka käyttää muita, edistyneempiä uudelleenohjaustyyppejä mod_rewrite- moduulin kanssa:
<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-uudelleenohjaus .htaccess, joka ilmaisee tilapäisen siirron, kohdataan paljon harvemmin. Tässä on esimerkki tällaisesta asetuksesta:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^old-page.html$ /new-page.html [R=302,L]
</IfModule>
Direktiivin ErrorDocument
Tämän asetuksen avulla voit hallita, mitä käyttäjä näkee, kun sivustossasi tapahtuu HTTP-virheitä. Normaalin virheilmoituksen sijaan voit näyttää oman sivusi, joka on vierailijalle informatiivisempi ja auttaa ymmärtämään mitä tapahtui. Käytä vain tätä syntaksia:
ErrorDocument <error_code> <URL_page>
Esimerkiksi
ErrorDocument 404 /errors/not_found.html
Tarkoittaa, että kun 404- virhe tapahtuu, sivu osoitteessa /errors/not_found.html avataan. Absoluuttiset URL-osoitteet määritetään samalla tavalla:
ErrorDocument 500 http://example.com/errors/server_error.html
Tämä esimerkki osoittaa server_error.html- sivun näyttämisen osoitteessa http://example.com/errors/ 500- virheen sattuessa.
Sivustohakemistoon pääsyn estäminen
.htaccess-tiedostossa on komento Deny from all , jonka avulla voit estää pääsyn tiettyihin verkkopalvelimesi kansioihin tai tiedostoihin. Tästä voi olla hyötyä, jos haluat piilottaa yksityisiä tietoja tai tärkeitä tiedostoja sivuston kävijöiltä tietoturvan varmistamiseksi.
Listauksen poistamiseksi käytöstä (kaikkien käytettävissä olevien hakemistojen tarkasteleminen) sinun on lisättävä rivi:
Options -Indexes
Esimerkki tiettyyn hakemistoon pääsyn estämisestä näyttää tältä:
<Directory /path_to_your_directory>
Order Deny,Allow
Deny from all
</Directory>
Vastaavasti voit estää pääsyn yhteen tiedostoon:
<Files "file.php">
Order Deny,Allow
Deny from all
</Files>
Tai useille tiedostoille laajennuksen mukaan:
<FilesMatch "\.(txt|log|bak)$"> # Select the desired extensions, in the example: txt, log, bak
Order Deny,Allow
Deny from all
</FilesMatch>
Pääsyn estäminen IP:n perusteella
Pääsyn estäminen IP-osoitteen perusteella .htaccess-tiedostossa on menetelmä, jonka avulla voit rajoittaa pääsyä verkkosivustollesi tietyille IP-osoitteille tai niiden ryhmille. Tästä voi olla hyötyä, jos haluat estää tiettyjen ihmisten tai ei-toivottujen robottien pääsyn sivustollesi tai sen tiettyihin osiin.
Yhden IP-osoitteen estäminen tehdään komennolla:
Order Deny,Allow
Allow from all
Deny from 11.22.33.44
Useiden IP-osoitteiden estäminen tapahtuu samalla tavalla kopioimalla " Estä "-riville tarvittavat osoitteet.
IP-osoitteiden estämiseksi:
Order Deny,Allow
Allow from all
Deny from 11.11.11.11/24
Jos haluat sallia pääsyn vain tietyille IP-osoitteille, lisää koodi:
Order Deny,Allow
Deny from all
Allow from 11.22.33.44
Täydelliseen pääsyn estämiseen käytä direktiiviä Deny from all ja osoitteiden estämiseen maskin avulla määritä Deny from 11.22.
Jossa 11.22 on IP-osoitteen peite.
Vierailijoiden estäminen käyttäjäagentin toimesta
Käyttäjien estäminen User-Agentilla .htaccess-tiedostossa on tapa hallita, kuka voi käyttää verkkopalvelinta vierailijan käyttämän selaimen tietojen perusteella. User-Agent-merkkijono sisältää tietoja selaimesta, jolla henkilö on vuorovaikutuksessa palvelimesi kanssa, ja näiden tietojen ansiosta voit rajoittaa pääsyä tietyille käyttäjille.
Yleisin tapa estää käyttäjäagentin toimesta on käyttää mod_rewrite-funktiota :
<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>
Tässä esimerkissä:
- RewriteCond %{HTTP_USER_AGENT} käytetään tarkistamaan User-Agent-merkkijono.
- ^Bot1, ^Bot2, ^Bot3 ovat esimerkkejä User-Agent-merkkijonoista, jotka haluamme estää. NC-muuntimet osoittavat, että vertailun ei tulisi olla kirjainkoosta riippumaton.
- RewriteRule ^.*$ - [F,L] koskee pyyntöä, jos jokin RewriteCond-ehdoista täyttyy. Se lähettää vastauksen 403 Kielletty tilakoodilla (F) ja lopettaa sääntöjen käsittelyn (L).
Välimuisti htaccessissa
Välimuistin määrittäminen .htaccess-tiedoston avulla nopeuttaa sivustoasi, koska se latautuu nopeammin käyttäjille. Se toimii näin: tietyt tiedostot, kuten kuvat, CSS-tyylit ja JavaScript-skriptit, tallennetaan käyttäjän selaimen välimuistiin ensimmäisen latauksen jälkeen. Nyt selain voi käyttää näitä tiedostoja välimuistista sen sijaan, että se lataa ne uudelleen palvelimelta aina, kun käyttäjä vierailee sivulla. Tämä lyhentää latausaikaa ja parantaa sivuston suorituskykyä.
Harkitse esimerkkiä:
# 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>
Toisaalta usein päivitettävien resurssien osalta on tarpeen poistaa välimuisti käytöstä:
# 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>
Sivuston suorituskyvyn optimointi
Apachen mod_deflate- ja mod_gzip - moduulit auttavat pakkaamaan palvelimen käyttäjien laitteille lähettämiä tietoja. Tämä pienentää tiedostojen kokoa, mikä puolestaan nopeuttaa sivujen latautumista. On kuitenkin tärkeää muistaa, että näiden moduulien tuki ja kokoonpano voivat vaihdella palvelimestasi riippuen.
Esimerkki mod_deflate- moduulin käytöstä :
<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>
Esimerkki mod_gzip- tiedostosta :
<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>
Kävimme läpi yleisimmin käytetyt direktiivit. Voit tutustua tiedoston kaikkiin ominaisuuksiin virallisessa dokumentaatiossa.
Kuinka tarkistaa .htaccess-tiedoston toimivuus
Voit tarkistaa, toimiiko .htaccess-tiedosto sivustolla, suorittamalla seuraavat vaiheet:
- Muuta virheellinen .htaccess-tiedosto tahallisesti. Vastauksena palvelimen pitäisi antaa virheilmoitus. Tämä menetelmä näyttää, käytetäänkö tiedoston toimintaa yleensä palvelimella.
- Tarkista tekemiesi muutosten toimivuus. Tee esimerkiksi pieni säätö johonkin parametriin ja arvioi muutosten olemassaolo.
- Tarkista sivun tilakoodi, jos muutokset liittyvät palvelimen vastaukseen. Kuinka tämä tehdään, kuvailimme aiemmin artikkelissa HTTP-virhekoodit: täydellinen luettelo palvelinvirheistä.
- Katso palvelimen lokit. Ne näyttävät kaikki .htaccess-tiedoston toimintaan liittyvät virheet.
- Suorita testaus verkkopalveluilla tai -työkaluilla.
On tärkeää ymmärtää, että .htaccess-tiedoston toimivuuden tarkistamiseksi sinun ei tarvitse suorittaa kaikkia vaiheita kerralla. Riittää, kun valitset luettelosta sopivimman menetelmän ja käytät sitä.
Yhteenveto
.htaccess-tiedoston määrittäminen on tärkeä askel Apache-palvelimen optimoinnissa ja suojaamisessa. Olemme tutkineet, kuinka tämä tiedosto auttaa hallitsemaan uudelleenohjauksia, pakkaamaan sisältöä ja varmistamaan suojauksen. Kun hallitset .htaccessin käytön, saat tehokkaan työkalun verkkosivustojen suorituskyvyn ja toimivuuden parantamiseen.