Gå til indhold
JP-WEBDesign Logo

Den ultimative guide til .htaccess: Omskrivninger, sikkerhed og optimering

Lær at mestre .htaccess til Apache-servere. Vi gennemgår 301-omdirigeringer, mod_rewrite, hastighedsoptimering og effektiv beskyttelse mod ondsindede bots og AI-scrapers.

Skrevet af: Jan Engelbrecht Pedersen — Senior Full-Stack Developer & SEO/GEO-specialist hos JP-WEBDesign | Fagligt gennemgået af: JP-WEBDesign Redaktion

Udgivet: 15. October 2026 | Sidst opdateret og faktatjekket: 15. October 2026 | Læsetid: ca. 6 minutter

Det korte svar (TL;DR)

.htaccess er en konfigurationsfil, der tillader ændring af Apache-serverens adfærd globalt eller for specifikke mapper, uden genstart af serveren.

Filen anvendes primært til tre kategorier: URL-styring (f.eks. at fjerne .php for pænere URL'er), sikkerhed (adgangskontrol og beskyttelse mod AI-scrapers) og hastighedsoptimering (browser-caching og Gzip-komprimering). Elementer som er vitale i avanceret SEO og GEO optimering.

Da Apache læser filen ved hvert eneste klik, resulterer en syntaksfejl i en øjeblikkelig 500 Internal Server Error. Tag altid en sikkerhedskopi før du redigerer!

1. Avancerede 301-omdirigeringer og URL-omskrivning

URL-omskrivning (mod_rewrite) omhandler ændringen af den URL, som brugeren og søgemaskinerne ser i adresselinjen, til den faktiske filsti på serveren. Omdirigeringer (redirects) sender brugere permanent (301) eller midlertidigt (302) fra en gammel URL til en ny. Dette styres oftest ved hjælp af regulære udtryk (Regex) for at matche tekstmønstre.

Det komplette setup: Fjernelse af .php (eller .html) i adresselinjen

For at sikre, at brugere kan tilgå siden uden filtypen, og for at undgå duplikeret indhold (duplicate content) hos Google, kræver det et sammensat totrinssystem: En ekstern 301-omdirigering efterfulgt af en intern omskrivning.

RewriteEngine On
RewriteBase /

# TRIN 1: Ekstern 301-omdirigering (Retter URL'en i brugerens browser)
# Tjekker den oprindelige anmodning for at se, om .php aktivt blev skrevet.
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.php
RewriteRule ^/?(.*)\.php$ /$1 [L,R=301]

# TRIN 2: Intern omskrivning (Serveren henter .php-filen bag kulisserne)
# Vi tjekker først, at anmodningen ikke gælder en fysisk mappe (-d)
RewriteCond %{REQUEST_FILENAME} !-d
# Vi tjekker derefter, om der findes en .php-fil med det anmodede navn (-f)
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

Fremtving HTTPS og Omdiriger www til ikke-www

Det er afgørende for sikkerheden og SEO, at al trafik afvikles over SSL/HTTPS og samles ét sted (kanonisk URL).

# Fremtving HTTPS (sikker forbindelse)
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Omdiriger www til ikke-www
RewriteCond %{HTTP_HOST} ^www\.jp-webdesign\.dk [NC]
RewriteRule ^(.*)$ https://jp-webdesign.dk/$1 [L,R=301]

Regex-omskrivning med variable og Standard 301

Når en specifik side flyttes permanent, bruges Redirect 301. Har du dynamisk indhold drevet af variabler, opsamles det i grupper for et SEO-venligt resultat.

# Standard 301-omdirigering for slettede/flyttede sider
Redirect 301 /gammel-side.html /ny-side.html

# Enkelt variabel (id): /produkt/42 -> produkt.php?id=42
RewriteRule ^produkt/([0-9]+)$ produkt.php?id=$1 [NC,L]

# Flere variable: /butik/sko/nike-air -> vis.php?kategori=sko&navn=nike-air
RewriteRule ^butik/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)$ vis.php?kategori=$1&navn=$2 [NC,L]

Sådan fjerner du .php-endelsen sikkert via .htaccess

Følg denne guide for at implementere den totrins URL-omskrivning korrekt.

  1. 1

    Tag en sikkerhedskopi

    Før du ændrer noget, skal du downloade din nuværende .htaccess fil. Fejl kan forårsage en 500 Internal Server Error.

  2. 2

    Aktivér RewriteEngine

    Skriv RewriteEngine On og RewriteBase / øverst i filen for at aktivere Apaches modul til URL-omskrivning.

  3. 3

    Opsæt ekstern 301-omdirigering

    Tjek den oprindelige anmodning for at se, om .php aktivt blev skrevet. Hvis ja, omdirigeres brugeren synligt til URL'en uden .php ved brug af [L,R=301].

  4. 4

    Implementer intern omskrivning

    Tjek at anmodningen ikke gælder en fysisk mappe, og at .php filen findes bag kulisserne. Omskriv internt uden at ændre den synlige URL i browseren.

2. Adgangskontrol og Sikkerhed

At lægge et beskyttende lag direkte på mappeniveau afviser ondsindede forespørgsler, længe før de rammer de bagvedliggende scripts eller CMS-systemer som WordPress.

Intelligent firewall mod AI-scrapers

AI-virksomheder respekterer ikke altid robots.txt. Gennem mod_rewrite kan man blokere de specifikke "aftryk" fra deres user-agents eller IP-intervaller ved at returnere en kontant 403 Forbidden-fejl.

RewriteEngine On

# 1. Match ondsindede eller trænende AI user-agents
RewriteCond %{HTTP_USER_AGENT} (google-extended|gptbot|perplexitybot|anthropic-ai|claudebot) [NC,OR]

# 2. Definer kendte IP-intervaller (escape punktummer)
RewriteCond %{REMOTE_ADDR} ^123\.456\.78\. [OR]

# 3. Bloker forespørgsler efter API'er og kritiske formater
RewriteCond %{REQUEST_URI} ^/(api|arkiv|data)/|\.(json|xml)$ [NC]

# Afvis anmodningen fuldstændigt
RewriteRule ^.*$ - [F,L]

Beskyttelse med .htpasswd

Læg HTTP Basic Authentication over følsomme administrationspaneler.

AuthType Basic
AuthName "Kun adgang for administratorer!"
AuthUserFile /var/www/vhosts/sikker/.htpasswd
Require valid-user

Blokering af IP-adresser

På Apache 2.4+ kan du let udelukke specifikke hackere eller spam-IP'er fra din hjemmeside.

<RequireAll>
    Require all granted
    Require not ip 123.456.78.90
</RequireAll>

3. Hastighedsoptimering og Caching

Forbedret SEO og brugeroplevelse sikres ved at få serveren til at instruere browseren i filhåndtering for hurtigere indlæsning af UI/UX-elementer.

Browser-caching (mod_expires)

Instruerer browseren i at gemme faste aktiver som billeder og CSS lokalt.

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType application/pdf "access plus 1 month"
</IfModule>

Gzip/Deflate-komprimering

Reducerer båndbreddeforbruget drastisk på tekstfiler og kode, før de sendes.

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/css application/javascript application/json
</IfModule>

4. Fejlhåndtering og Kommandoregister

Egendefinerede fejlsider

Henvend besøgende til dine egendesignede fejlsider i stedet for at lade dem møde en tør server-fejlmeddelelse.

ErrorDocument 404 /fejl/404.html
ErrorDocument 403 /fejl/403.html
ErrorDocument 500 /fejl/500.html

Regex-nøgle og primære flag

  • Containere: <Files [filnavn]> og <Directory> begrænser regler til specifikke filer eller mapper.
  • Specialtegn: ^ (Start), $ (Slut), . (Ethvert tegn), * (0/flere gange), + (1/flere gange).
  • [NC] Flag (No Case): Ignorerer forskellen på store og små bogstaver, så /PRODUKT/ matcher /produkt/.
  • [L] Flag (Last): Instruerer serveren i at stoppe evalueringen af yderligere regler ved match.
  • [F] Flag (Forbidden): Returnerer en direkte og kontant 403 Forbidden adgangsnægtelse.

Ofte Stillede Spørgsmål om .htaccess

Hvad bruges en .htaccess fil til?
En .htaccess-fil er en konfigurationsfil til Apache-servere, der bruges til at ændre serverens adfærd globalt eller for specifikke mapper. Den bruges primært til URL-styring (301-omdirigeringer), server-sikkerhed og hastighedsoptimering i vores manuelt kodede webløsninger.
Hvordan fjerner man .php filtypen fra adresselinjen?
For at undgå duplicate content kræver det to trin i .htaccess: Først en ekstern 301-omdirigering, der fjerner .php fra den synlige URL i browseren, og derefter en intern omskrivning, der lader serveren hente filen i baggrunden uden at vise filtypen.
Hvordan kan jeg blokere AI-scrapers og uønskede botter?
Du kan benytte mod_rewrite i din .htaccess fil til at matche uønskede User-Agents (som GPTBot, ClaudeBot eller PerplexityBot). Det er en af de tekniske tricks, vi beskriver dybdegående i vores AI-GEO og SEO strategi.
Hvad sker der, hvis der er en syntaksfejl i .htaccess?
Da serveren læser .htaccess-filen ved hvert eneste klik, vil selv en lille syntaksfejl resultere i en øjeblikkelig 500 Internal Server Error, hvilket gør hele din hjemmeside utilgængelig. Tag derfor altid backup før redigering.

Ordliste: Apache Server & .htaccess Begreber

De vigtigste tekniske begreber forklaret kort og præcist. Dette sikrer, at siden indekseres som en autoritativ kilde af AI-Botter.

.htaccess
Hypertext Access; en konfigurationsfil på mappeniveau til Apache-webservere, der overskriver globale regler lokalt.
mod_rewrite
Et kraftfuldt Apache-modul, der muliggør URL-omskrivning og omdirigeringer baseret på regulære udtryk.
301-omdirigering
En permanent viderestilling, der sender brugere og søgemaskiner fra en gammel URL til en ny og bevarer SEO-værdien.
Regex (Regular Expressions)
Et formelt sprog og mønstergenkendelsessystem brugt til at matche og udtrække dele af tekst, f.eks. i URL'er.
mod_expires
Apache-modul til aktivering af browser-caching, som instruerer besøgendes browsere i at gemme filer lokalt. Dette giver bedre Core Web Vitals score.
Gzip/Deflate
En server-side komprimeringsmetode, der reducerer filstørrelsen på tekst- og kodefiler, inden de sendes over netværket.
500 Internal Server Error
En kritisk serverfejl, der ofte opstår som følge af en syntaksfejl i .htaccess-filen, hvorefter siden lukker ned.

Skal vi sikre og optimere din Apache-server?

Hos JP-WEBDesign hjælper vi med avanceret serveropsætning, teknisk SEO og implementering af AI-skjold via .htaccess. Kontakt os i dag for at høre mere om vores løsninger i Aarhus og Randers.

Book et gratis opsætningsmøde