I denne artikel vil vi udforske de grundlæggende principper for at bruge .htaccess-filen, som er afgørende for at forbedre SEO. Denne fil sikrer korrekt indeksering af sider af søgemaskiner. Vi vil lære, hvordan man administrerer omdirigeringer, konfigurerer sikkerhed og øger ydeevnen. Derudover vil vi give tips om, hvordan du konfigurerer denne fil uafhængigt.
Hvorfor .htaccess er nødvendig
.htaccess-filen fungerer som en slags "fjernbetjening" for webudviklere på Apache-servere. Det tilbyder praktiske værktøjer til at justere forskellige parametre og administrere adfærden på et websted. Når direkte adgang til serverens primære konfigurationsfiler ikke er tilgængelig (som det ofte er tilfældet med virtuel hosting, for eksempel), bliver .htaccess et nyttigt værktøj til at foretage nødvendige ændringer.
Htaccess er ofte placeret i rodmappen på dit websted eller i de mapper, hvor speciel konfiguration er nødvendig. Hvis du for eksempel bruger WordPress, kan konfigurationen udføres gennem Yoast SEO-plugin, som vi diskuterede i artiklen om Konfiguration af robots.txt. I andre tilfælde er det nok at gå til den nødvendige mappe og redigere den eksisterende .htaccess-fil, eller oprette den, hvis den ikke er blevet oprettet endnu.
Konfiguration af .htaccess-filen
301 Omdiriger htaccess
En 301-omdirigering i .htaccess-filen kan sammenlignes med en permanent omdirigering på et websted. Den informerer søgemaskiner og browsere om, at siden nu er permanent placeret på en ny adresse og foreslår opdatering af bogmærker og indeksering. En sådan omdirigering bruges typisk, når en side flyttes eller slettes for at bevare dens placering i søgeresultaterne og omdirigere besøgende til den nye placering.
For at aktivere omdirigeringer skal du aktivere den tilsvarende kommando i .htaccess-filen:
RewriteEngine on
Derefter kan du konfigurere den enkleste form for omdirigering:
<IfModule mod_rewrite.c>
RewriteEngine On
Redirect 301 /old-page.html /new-page.html
</IfModule>
En lignende omdirigering ved hjælp af Omdirigering Permanent direktiv ser sådan ud:
<IfModule mod_rewrite.c>
RewriteEngine On
Redirect permanent /old-page.html http://new-domain.ru/new-page.html
</IfModule>
Dette er de nemmeste omdirigeringsmetoder at konfigurere. Lad os overveje en konfiguration, der bruger andre, mere avancerede 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 omdirigering .htaccess, der indikerer midlertidig flytning, støder på meget sjældnere. Her er et eksempel på en sådan indstilling:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^old-page.html$ /new-page.html [R=302,L]
</IfModule>
Direktiv ErrorDocument
Denne indstilling giver dig mulighed for at kontrollere, hvad brugeren ser, når der opstår HTTP-fejl på dit websted. I stedet for standardfejlmeddelelsen kan du vise din egen side, som vil være mere informativ for den besøgende og hjælpe dem med at forstå, hvad der skete. Følg blot denne syntaks til brug:
ErrorDocument <error_code> <URL_page>
For eksempel:
ErrorDocument 404 /errors/not_found.html
Betyder, at når en 404 fejl opstår, siden kl /errors/not_found.html vil blive åbnet. Absolutte URL'er er specificeret på samme måde:
ErrorDocument 500 http://example.com/errors/server_error.html
Dette eksempel angiver visningen af server_error.html side på http://example.com/errors/ i tilfælde af a 500 fejl.
Nægter adgang til en webstedskatalog
.htaccess-filen har kommandoen Benægte fra alle, som hjælper med at nægte adgang til bestemte mapper eller filer på din webserver. Dette kan være nyttigt, hvis du vil skjule private oplysninger eller vigtige filer fra besøgende på webstedet for at sikre datasikkerhed.
For at deaktivere fortegnelse (se alle tilgængelige mapper), skal du tilføje linjen:
Options -Indexes
Et eksempel på blokering af adgang til en bestemt mappe ser sådan ud:
<Directory /path_to_your_directory>
Order Deny,Allow
Deny from all
</Directory>
På samme måde kan du nægte adgang til en enkelt fil:
<Files "file.php">
Order Deny,Allow
Deny from all
</Files>
Eller for en række filer i forlængelse:
<FilesMatch "\.(txt|log|bak)$"> # Select the desired extensions, in the example: txt, log, bak
Order Deny,Allow
Deny from all
</FilesMatch>
Blokering af adgang via IP
Blokering af adgang via IP i .htaccess-filen er en metode, der giver dig mulighed for at begrænse adgangen til dit websted for specifikke IP-adresser eller deres grupper. Dette kan være nyttigt, hvis du vil forhindre adgang til dit websted eller dets specifikke dele for bestemte personer eller uønskede bots.
Blokering af en enkelt IP-adresse udføres med kommandoen:
Order Deny,Allow
Allow from all
Deny from 11.22.33.44
Blokering af flere IP-adresser gøres på samme måde ved at duplikere "Benægte fra" linje med de nødvendige adresser.
For at blokere en række IP-adresser:
Order Deny,Allow
Allow from all
Deny from 11.11.11.11/24
For kun at tillade adgang for specifikke IP'er skal du tilføje koden:
Order Deny,Allow
Deny from all
Allow from 11.22.33.44
Brug direktivet for fuldstændig nægtelse af adgang Benægte fra alle, og for blokering af adresser med maske, specificer Benægte fra 11.22.
Hvor, 11.22 er IP-adressen maske.
Blokering af besøgende af User-Agent
Blokering af brugere af User-Agent i .htaccess-filen er en metode til at kontrollere, hvem der kan få adgang til din webserver baseret på information om den browser, den besøgende bruger. User-Agent-strengen indeholder data om den browser, en person bruger til at interagere med din server, og takket være disse oplysninger kan du begrænse adgangen for visse brugere.
Den mest almindelige måde at blokere af User-Agent er at bruge 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 eksempel:
- RewriteCond %{HTTP_USER_AGENT} bruges til at kontrollere User-Agent-strengen.
- ^Bot1, ^Bot2, ^Bot3 er eksempler på User-Agent-strenge, vi ønsker at blokere. NC-modifikatorerne indikerer, at sammenligningen skal være ufølsom over for store og små bogstaver.
- RewriteRule ^.*$ - [F,L] gælder for anmodningen, hvis nogen af RewriteCond-betingelserne er opfyldt. Den sender et svar med 403 Forbidden statuskode (F) og stopper behandlingen af regler (L).
Caching i htaccess
Konfiguration af caching gennem .htaccess-filen hjælper med at fremskynde dit websted ved at gøre det indlæses hurtigere for brugerne. Det fungerer sådan her: visse filer, såsom billeder, CSS-stile og JavaScript-scripts, gemmes i brugerens browsercache efter den første indlæsning. Nu kan browseren bruge disse filer fra cachen, i stedet for at genindlæse dem fra serveren, hver gang brugeren besøger en side. Dette reducerer indlæsningstiden og forbedrer webstedets ydeevne.
Overvej 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 ressourcer, der ofte opdateres, er det på den anden side nødvendigt at 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>
Optimering af webstedets ydeevne
mod_deflate og mod_gzip moduler i Apache hjælper med at komprimere information, som serveren sender til brugernes enheder. Dette gør filerne mindre i størrelse, hvilket igen fremskynder sideindlæsningen. Det er dog vigtigt at huske, at support og konfiguration af disse moduler kan variere afhængigt af din server.
Eksempel på brug af 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 til 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 diskuterede de mest almindeligt anvendte direktiver. Du kan gøre dig bekendt med alle mulighederne i filen i officiel dokumentation.
Sådan kontrolleres funktionaliteten af .htaccess-filen
For at kontrollere, om din .htaccess-fil fungerer på webstedet, kan du udføre følgende trin:
- Ændr med vilje .htaccess-filen med en fejl. Som svar skulle serveren give en fejl. Denne metode viser, om filens handling generelt anvendes på serveren.
- Tjek funktionaliteten af specifikke ændringer, du har foretaget. Foretag for eksempel en mindre justering af en af parametrene og vurder tilstedeværelsen af ændringer.
- Tjek sidens statuskode, hvis ændringerne er relateret til serverens svar. Hvordan man gør dette, har vi tidligere beskrevet i artiklen HTTP-fejlkoder: en komplet liste over serverfejl.
- Se serverlogfilerne. De viser alle fejl relateret til driften af .htaccess-filen.
- Udfør test ved hjælp af onlinetjenester eller værktøjer.
Det er vigtigt at forstå, at for at kontrollere funktionaliteten af .htaccess-filen, behøver du ikke udføre alle trin på én gang. Det er nok at vælge den bedst egnede metode fra listen og bruge den.
Konklusion
Konfiguration af .htaccess-filen er et vigtigt skridt i optimering og beskyttelse af din Apache-server. Vi har undersøgt, hvordan denne fil hjælper med at administrere omdirigeringer, komprimere indhold og sikre sikkerhed. Når du mestrer arbejdet med .htaccess, får du et kraftfuldt værktøj til at forbedre ydeevnen og funktionaliteten af websteder.