Kunnskapsbase Enkle instruksjoner for å jobbe med Profitserver-tjenesten
Hoved Kunnskapsbase Konfigurerer .htaccess-fil

Konfigurerer .htaccess-fil


I denne artikkelen vil vi utforske de grunnleggende prinsippene for bruk av .htaccess-filen, som er avgjørende for å forbedre SEO. Denne filen sikrer riktig indeksering av sider av søkemotorer. Vi vil lære hvordan du administrerer omdirigeringer, konfigurerer sikkerhet og øker ytelsen. I tillegg vil vi gi tips om hvordan du konfigurerer denne filen uavhengig.

Hvorfor .htaccess er nødvendig

.htaccess-filen fungerer som en slags "fjernkontroll" for webutviklere på Apache-servere. Den tilbyr praktiske verktøy for å justere ulike parametere og administrere oppførselen til et nettsted. Når direkte tilgang til serverens hovedkonfigurasjonsfiler ikke er tilgjengelig (som ofte er tilfellet for eksempel med virtuell hosting), blir .htaccess et nyttig verktøy for å gjøre nødvendige endringer.

Htaccess er ofte plassert i rotmappen på nettstedet ditt eller i de mappene der spesiell konfigurasjon er nødvendig. Hvis du for eksempel bruker WordPress, kan konfigurasjonen gjøres gjennom Yoast SEO-plugin, som vi diskuterte i artikkelen om Konfigurerer robots.txt. I andre tilfeller er det nok å gå til den nødvendige mappen og redigere den eksisterende .htaccess-filen, eller opprette den hvis den ikke er opprettet ennå.

Konfigurering av .htaccess-filen

301 Omdiriger htaccess

En 301-omdirigering i .htaccess-filen kan sammenlignes med en permanent omdirigering på et nettsted. Den informerer søkemotorer og nettlesere om at siden nå er permanent lokalisert på en ny adresse og foreslår oppdatering av bokmerker og indeksering. Slik omdirigering brukes vanligvis når en side flyttes eller slettes for å bevare rangeringen i søkeresultatene og omdirigere besøkende til den nye plasseringen.

For å aktivere omdirigeringer må du aktivere den tilsvarende kommandoen i .htaccess-filen:

RewriteEngine on

Etter det kan du konfigurere den enkleste formen for omdirigering:

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

En lignende omdirigering ved hjelp av Omdirigere Permanent direktivet ser slik ut:

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

Dette er de enkleste omdirigeringsmetodene å konfigurere. La oss vurdere en konfigurasjon som bruker andre, mer avanserte typer omdirigeringer med mod_rewrite modul:

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

En 302-omdirigerings-.htaccess, som indikerer midlertidig flytting, oppdages mye sjeldnere. Her er et eksempel på en slik innstilling:

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

Direktiv ErrorDocument

Denne innstillingen lar deg kontrollere hva brukeren ser når HTTP-feil oppstår på nettstedet ditt. I stedet for standard feilmelding kan du vise din egen side, som vil være mer informativ for besøkende og hjelpe dem å forstå hva som har skjedd. Bare følg denne syntaksen for bruk:

ErrorDocument <error_code> <URL_page>

For eksempel,

ErrorDocument 404 /errors/not_found.html

Betyr at når en 404 feil oppstår, siden kl /errors/not_found.html vil bli åpnet. Absolutte nettadresser er spesifisert på samme måte:

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

Dette eksemplet indikerer visningen av server_error.html side ved http://example.com/errors/ i tilfelle a 500 feil.

Nekter tilgang til en nettstedskatalog

.htaccess-filen har kommandoen Nekt fra alle, som bidrar til å nekte tilgang til bestemte mapper eller filer på webserveren din. Dette kan være nyttig hvis du ønsker å skjule privat informasjon eller viktige filer fra besøkende på nettstedet for å sikre datasikkerhet.

For å deaktivere oppføringen (se alle tilgjengelige kataloger), må du legge til linjen:

Options -Indexes

Et eksempel på blokkering av tilgang til en bestemt katalog ser slik ut:

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

På samme måte kan du nekte tilgang til en enkelt fil:

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

Eller for en rekke filer etter utvidelse:

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

Blokkering av tilgang via IP

Blokkering av tilgang via IP i .htaccess-filen er en metode som lar deg begrense tilgangen til nettstedet ditt for spesifikke IP-adresser eller deres grupper. Dette kan være nyttig hvis du vil forhindre tilgang til nettstedet ditt eller dets spesifikke deler for bestemte personer eller uønskede roboter.

Blokkering av en enkelt IP-adresse gjøres med kommandoen:

Order Deny,Allow
Allow from all
Deny from 11.22.33.44

Blokkering av flere IP-adresser gjøres på samme måte ved å duplisere "Nekt fra" linje med de nødvendige adressene.

For blokkering av en rekke IP-adresser:

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

For å tillate tilgang bare for spesifikke IP-er, legg til koden:

Order Deny,Allow
Deny from all
Allow from 11.22.33.44

For fullstendig nektelse av tilgang, bruk direktivet Nekt fra alle, og for blokkering av adresser med maske, spesifiser Nekt fra 11.22.

Hvor, 11.22 er IP-adressen maske.

Blokkering av besøkende av brukeragent

Blokkering av brukere av User-Agent i .htaccess-filen er en metode for å kontrollere hvem som kan få tilgang til webserveren din basert på informasjon om nettleseren den besøkende bruker. User-Agent-strengen inneholder data om nettleseren en person bruker for å samhandle med serveren din, og takket være denne informasjonen kan du begrense tilgangen for enkelte brukere.

Den vanligste måten å blokkere av User-Agent er å bruke 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>

I dette eksemplet:

  1. RewriteCond %{HTTP_USER_AGENT} brukes til å sjekke User-Agent-strengen.
  2. ^Bot1, ^Bot2, ^Bot3 er eksempler på User-Agent-strenger vi ønsker å blokkere. NC-modifikatorene indikerer at sammenligningen ikke skal skille mellom store og små bokstaver.
  3. RewriteRule ^.*$ - [F,L] gjelder for forespørselen hvis noen av RewriteCond-betingelsene er oppfylt. Den sender et svar med 403 Forbidden statuskode (F) og stopper behandlingsregler (L).

Bufring i htaccess

Konfigurering av hurtigbufring gjennom .htaccess-filen bidrar til å øke hastigheten på nettstedet ditt ved å gjøre det lastet raskere for brukerne. Det fungerer slik: visse filer, som bilder, CSS-stiler og JavaScript-skript, lagres i brukerens nettleserbuffer etter den første innlastingen. Nå kan nettleseren bruke disse filene fra cachen, i stedet for å laste dem på nytt fra serveren hver gang brukeren besøker en side. Dette reduserer lastetiden og forbedrer nettstedets ytelse.

Tenk på et eksempel:

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

For ressurser som oppdateres ofte, er det derimot nødvendig å deaktivere caching:

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

Optimalisering av nettstedets ytelse

Ocuco mod_deflate og mod_gzip moduler i Apache hjelper til med å komprimere informasjon som serveren sender til brukernes enheter. Dette gjør filene mindre i størrelse, noe som igjen gjør at sideinnlastingen går raskere. Det er imidlertid viktig å huske at støtte og konfigurasjon av disse modulene kan variere avhengig av serveren din.

Eksempel på bruk av mod_deflate modul:

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

Eksempel for 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>

Vi diskuterte de mest brukte direktivene. Du kan gjøre deg kjent med alle egenskapene til filen i offisiell dokumentasjon.

Hvordan sjekke funksjonaliteten til .htaccess-filen

For å sjekke om .htaccess-filen din fungerer på nettstedet, kan du utføre følgende trinn:

  1. Endre .htaccess-filen med en feil med vilje. Som svar skal serveren gi en feilmelding. Denne metoden viser om filens operasjon vanligvis brukes på serveren.
  2. Sjekk funksjonaliteten til spesifikke endringer du har gjort. Gjør for eksempel en mindre justering av en av parameterne og vurder tilstedeværelsen av endringer.
  3. Sjekk statuskoden til siden hvis endringene er relatert til serverens svar. Hvordan du gjør dette, har vi tidligere beskrevet i artikkelen HTTP-feilkoder: en komplett liste over serverfeil.
  4. Se serverloggene. De viser alle feil relatert til driften av .htaccess-filen.
  5. Utfør testing ved å bruke nettjenester eller verktøy.

Det er viktig å forstå at for å sjekke funksjonaliteten til .htaccess-filen, trenger du ikke å utføre alle trinnene samtidig. Det er nok å velge den mest passende metoden fra listen og bruke den.

Konklusjon

Konfigurering av .htaccess-filen er et viktig skritt for å optimalisere og beskytte Apache-serveren. Vi har utforsket hvordan denne filen hjelper til med å administrere omdirigeringer, komprimere innhold og sikre sikkerhet. Når du mestrer å jobbe med .htaccess, får du et kraftig verktøy for å forbedre ytelsen og funksjonaliteten til nettsider.

❮ Forrige artikkel FTP-serveroppsett
Neste artikkel ❯ Hvordan konfigurere en webserver (Apache-PHP-MySQL/MariaDB) på Linux

Spør oss om VPS

Vi er alltid klare til å svare på spørsmålene dine når som helst på dagen eller natten.