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 kansioissa, joissa tarvitaan erityisiä määrityksiä. Jos käytät esimerkiksi WordPressiä, asetukset voidaan tehdä Yoast SEO -laajennuksen kautta, josta keskustelimme artikkelissa Määritetään robots.txt-tiedostoa. Muissa tapauksissa riittää, kun siirryt haluttuun 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>
Samanlainen uudelleenohjaus käyttämällä RedirectPermanent ohje 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 helpoimpia uudelleenohjausmenetelmiä määrittää. Tarkastellaan kokoonpanoa, joka käyttää muita, edistyneempiä uudelleenohjaustyyppejä mod_rewrite moduuli:
<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 a 404 tapahtuu virhe, 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 näyttää näytön server_error.html sivulla osoitteessa http://example.com/errors/ a 500 virhe.
Sivustohakemistoon pääsyn estäminen
.htaccess-tiedostossa on komento Kielletty kaikki, joka auttaa estämään pääsyn tiettyihin verkkopalvelimesi kansioihin tai tiedostoihin. Tästä voi olla hyötyä, jos haluat piilottaa yksityisiä tietoja tai tärkeitä tiedostoja sivuston vierailijoilta tietosuojan 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 tehdään samalla tavalla kopioimalla "Kielletty" rivillä vaadituilla osoitteilla.
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
Käytä direktiiviä täydelliseen pääsyn epäämiseen Kielletty kaikki, ja jos haluat estää osoitteiden maskin, määritä Kielletty 11.22.
Missä, 11.22 on IP-osoite naamio.
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ää User-Agentin avulla on käyttää 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>
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
mod_deflate ja mod_gzip Apachen moduulit auttavat pakkaamaan tietoja, jotka palvelin lähettää käyttäjien laitteisiin. Tämä tekee tiedostoista pienempiä, mikä puolestaan nopeuttaa sivujen lataamista. On kuitenkin tärkeää muistaa, että näiden moduulien tuki ja kokoonpano voivat vaihdella palvelimesi mukaan.
Esimerkki käytöstä mod_deflate moduuli:
<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 varten 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>
Keskustelimme yleisimmin käytetyistä direktiiveistä. Voit tutustua tiedoston kaikkiin ominaisuuksiin virallisia asiakirjoja.
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.