Hoppa till innehållet
Gratis verktyg

.htaccess-generator och htpasswd-generator

Med .htaccess-generatorn skapar du en färdig .htaccess online av moduler för bland annat 301-omdirigering, HTTPS, lösenordsskydd, cachning och komprimering. Du får även en .htpasswd med bcrypt-hash. För example.com skapas till exempel 301-regler som omdirigerar www.example.com och http till https://example.com. Gratis, utan registrering och direkt i webbläsaren.

Byggd av Dimitri Heissler

Bygger du något eget? Hosta det på en VPS med full kontroll.

Valfritt. Behövs bara för www-regeln och hotlinkskyddet. Gäller då endast för denna domän.

Snabbstart

Den färdiga filen finns under byggstenarna. Direkt till resultatet

HTTPS och www

Tvingar fram HTTPS och anger om din adress ska användas med eller utan www.

Ett enhetligt skrivsätt förhindrar duplicerat innehåll i sökmotorer. Ange din domän ovan så att regeln bara gäller den.

  • Om din webbplats ligger bakom Cloudflare, en lastbalanserare eller en Reverse Proxy ser Apache ofta bara HTTP och omdirigerar utan slut (felet ERR_TOO_MANY_REDIRECTS). Aktivera då ”Bakom en proxy”.

Vidarebefordringar

Omdirigerar gamla adresser till nya eller flyttar hela domänen.

Lösenordsskydd

Skyddar sidan med användarnamn och lösenord, till exempel en staging-version.

IP-åtkomst

Tillåter bara vissa IP-adresser eller blockerar enskilda adresser.

Felsidor

Visar egna sidor för 404, 403, 500 och andra fel.

Webbläsarcache

Anger hur länge webbläsare behåller bilder, stilmallar och typsnitt.

Bilder och typsnitt ändras sällan och kan ha långa cachetider. Använd långa cachetider för CSS och JavaScript bara om filnamnen innehåller ett versionsnummer.

Komprimering

Komprimerar överförda texter med Brotli och GZIP så att de blir mindre och överförs snabbare.

Endast textformat som HTML, CSS, JavaScript, JSON, XML och SVG komprimeras. Bilder och videor är redan komprimerade och lämnas oförändrade.

Förhindrar att andra webbplatser bäddar in dina bilder direkt.

Säkerhet

Stänger av kataloglistning och blockerar dolda filer och Backups.

  • Options -Indexes kan orsaka ett 500-fel hos vissa webbhotell om Options inte tillåts i .htaccess. Ta då bort raden eller be supporten om AllowOverride Options.

Säkerhetsheaders

Ställer in X-Frame-Options, nosniff, Referrer-Policy, Permissions-Policy och HSTS.

Styr om andra webbplatser får bädda in din sida i en frame.

  • Permissions-Policy blockerar kamera, mikrofon och platsåtkomst på sidan. Om du behöver något av detta, till exempel för videochatt eller kartor, ändrar du raden.

PHP-värden

Höjer uppladdningsgränsen, minnet och exekveringstiden för PHP.

Dina filer

5 aktiva komponenter

# .htaccess skapad med ZAP-Hostings .htaccess-generator
# Före uppladdning: Skapa en säkerhetskopia och testa först i en testmiljö.

# HTTPS och domänens skrivsätt
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Allmänt och säkerhet
Options -Indexes
AddDefaultCharset UTF-8
ServerSignature Off
<IfModule mod_headers.c>
  Header always unset X-Powered-By
  Header unset X-Powered-By
</IfModule>
RewriteCond %{REQUEST_URI} !(^|/)\.well-known/ [NC]
RewriteRule (^|/)\. - [F]
<FilesMatch "\.(bak|sql|log|ini|swp|dist|orig|old|conf)$|~$">
  Require all denied
</FilesMatch>

# Säkerhetsheaders
<IfModule mod_headers.c>
  Header always set X-Content-Type-Options "nosniff"
  Header always set X-Frame-Options "SAMEORIGIN"
  Header always set Referrer-Policy "strict-origin-when-cross-origin"
  Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
</IfModule>

# Komprimering
<IfModule mod_brotli.c>
  AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/css text/xml text/javascript application/javascript application/json application/ld+json application/xml application/xhtml+xml application/rss+xml application/atom+xml image/svg+xml image/x-icon font/ttf font/otf application/vnd.ms-fontobject
</IfModule>

<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript application/javascript application/json application/ld+json application/xml application/xhtml+xml application/rss+xml application/atom+xml image/svg+xml image/x-icon font/ttf font/otf application/vnd.ms-fontobject
</IfModule>

# Webbläsarcache
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType image/jpeg "access plus 1 month"
  ExpiresByType image/png "access plus 1 month"
  ExpiresByType image/gif "access plus 1 month"
  ExpiresByType image/webp "access plus 1 month"
  ExpiresByType image/avif "access plus 1 month"
  ExpiresByType image/svg+xml "access plus 1 month"
  ExpiresByType image/x-icon "access plus 1 month"
  ExpiresByType text/css "access plus 1 week"
  ExpiresByType text/javascript "access plus 1 week"
  ExpiresByType application/javascript "access plus 1 week"
  ExpiresByType font/woff "access plus 1 year"
  ExpiresByType font/woff2 "access plus 1 year"
  ExpiresByType font/ttf "access plus 1 year"
  ExpiresByType font/otf "access plus 1 year"
  ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
  ExpiresByType video/mp4 "access plus 1 month"
  ExpiresByType video/webm "access plus 1 month"
  ExpiresByType audio/mpeg "access plus 1 month"
  ExpiresByType audio/ogg "access plus 1 month"
  ExpiresByType text/html "access plus 0 seconds"
  ExpiresByType application/xhtml+xml "access plus 0 seconds"
</IfModule>

64 rader

Vissa webbläsare tar bort punkten i början eller lägger till .txt. Byt namn på den nedladdade filen till .htaccess innan du laddar upp den.

Det här bör du kontrollera

  • Om din webbplats ligger bakom Cloudflare, en lastbalanserare eller en Reverse Proxy ser Apache ofta bara HTTP och omdirigerar utan slut (felet ERR_TOO_MANY_REDIRECTS). Aktivera då ”Bakom en proxy”.

Före uppladdning

  • Säkerhetskopiera den befintliga .htaccess-filen om det redan finns en.
  • Testa först filen på en testwebbplats, inte på den skarpa webbplatsen.
  • Lägg den i din domäns rotkatalog (vanligtvis public_html eller htdocs). Namnet börjar med en punkt.
  • Om sidan därefter visar ett 500-fel, byt namn på filen via FTP och kontrollera din servers fellogg.

Exempelresultat

Vad denna .htaccess-generator ger dig

Du aktiverar moduler och får en färdig .htaccess-fil att kopiera eller ladda ner. För lösenordsskydd skapas också en .htpasswd med bcrypt-hash, och för PHP-värden en .user.ini. Du får direkt en varning för riskfyllda inställningar. Tre exempel:

Exempel 1: Ny webbplats på example.com

Indata:

  • Domän: example.com
  • Tvinga HTTPS och använd alltid adress utan www
  • GZIP-komprimering på
  • Cachelagring: bilder 1 månad, CSS och JavaScript 1 vecka, kontrollera alltid HTML på nytt
  • Stäng av kataloglistningar

Utdata (.htaccess):

# .htaccess skapad med ZAP-Hostings .htaccess-generator
# Före uppladdning: Skapa en säkerhetskopia och testa först i en testmiljö.

# HTTPS och domänens skrivsätt
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Allmänt och säkerhet
Options -Indexes

# Komprimering
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript application/javascript application/json application/ld+json application/xml application/xhtml+xml application/rss+xml application/atom+xml image/svg+xml image/x-icon font/ttf font/otf application/vnd.ms-fontobject
</IfModule>

# Webbläsarcache
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType image/jpeg "access plus 1 month"
  ExpiresByType image/png "access plus 1 month"
  ExpiresByType image/gif "access plus 1 month"
  ExpiresByType image/webp "access plus 1 month"
  ExpiresByType image/avif "access plus 1 month"
  ExpiresByType image/svg+xml "access plus 1 month"
  ExpiresByType image/x-icon "access plus 1 month"
  ExpiresByType text/css "access plus 1 week"
  ExpiresByType text/javascript "access plus 1 week"
  ExpiresByType application/javascript "access plus 1 week"
  ExpiresByType text/html "access plus 0 seconds"
  ExpiresByType application/xhtml+xml "access plus 0 seconds"
</IfModule>

Resultat i ord: En adress som http://www.example.com/seite går med en enda 301-omdirigering till https://example.com/seite. Anrop via http:// utan www hamnar också på https:// via 301. Bilder ligger kvar i webbläsarens cache i 1 månad (max-age=2592000), CSS och JavaScript i 1 vecka, medan HTML-sidor kontrolleras på nytt vid varje besök. HTML, CSS, JavaScript och JSON överförs komprimerade med GZIP. Den som öppnar en mapp utan index-fil ser inte längre en fillista, utan ett 403-fel.

Exempel 2: Lösenordsskyddad testsida

Indata:

  • Text för lösenordsfrågan: Staging
  • Sökväg till .htpasswd: /home/example/.htpasswd
  • Användare alice med lösenordet Sommer-2026!
  • Blockera sökmotorer

Utdata (.htaccess):

# .htaccess skapad med ZAP-Hostings .htaccess-generator
# Före uppladdning: Skapa en säkerhetskopia och testa först i en testmiljö.

# Lösenordsskydd
AuthType Basic
AuthName "Staging"
AuthUserFile /home/example/.htpasswd
Require valid-user

<IfModule mod_headers.c>
  Header always set X-Robots-Tag "noindex, nofollow"
</IfModule>

Utdata (.htpasswd):

alice:$2y$10$EixZaYVK1fsbw1ZfbX3OXevuQZIxS3zUD8zrCJEoRasNwfjhtG6f.

Resultat i ord: Besökare ser ett inloggningsfönster med texten ”Staging”. Utan en giltig användare svarar servern med status 401. I .htpasswd finns bara bcrypt-hashen: $2y$ betyder bcrypt, 10 är kostnadsfaktorn och därefter följer salt och hash. Själva lösenordet finns inte där. Filen ska ligga på sökvägen som anges i AuthUserFile, helst utanför webbkatalogen.

Exempel 3: Flytta en sida, ta bort en annan

Indata:

  • /old-page omdirigeras med 301 till /new-page, inklusive alla undersidor
  • /summer-sale har tagits bort permanent (410), endast exakt den sökvägen

Utdata (.htaccess):

# .htaccess skapad med ZAP-Hostings .htaccess-generator
# Före uppladdning: Skapa en säkerhetskopia och testa först i en testmiljö.

# Egna omdirigeringar
Redirect 301 /old-page /new-page
RedirectMatch 410 "^/summer-sale/?$"

Resultat i ord: /old-page och /old-page/info omdirigeras med 301 till /new-page respektive /new-page/info, så undersidorna bevaras. /summer-sale svarar med status 410 (Gone), så att sökmotorer snabbare tar bort sidan från indexet. En adress som /old-pages påverkas inte, eftersom regeln bara gäller vid sökvägsgränser. Verktyget påpekar också att webbläsaren kommer ihåg en 301 permanent och att du därför bör testa nya regler med 302 först.

Så fungerar det

Så skapar du en .htaccess-fil

Fyra steg från val till testad fil – utan konto eller installation.

Steg 1

Välj byggblock

Ange din domän högst upp och aktivera modulerna du behöver, eller börja med en mall: ”Bra grundinställningar”, ”Skydda stagingmiljön” eller ”Flytta domän”. Varje modul förklarar kort vad den gör.

Steg 2

Ställ in alternativ

Ställ in omdirigeringar med 301, 302, 307, 308 eller 410, användare, felsidor eller cachetider. Verktyget varnar för riskabla inställningar som omdirigeringsloopar, lösenordsskydd utan HTTPS eller för långa cachetider.

Steg 3

Kopiera eller ladda ner fil

Utdata uppdateras vid varje ändring. Kopiera .htaccess eller ladda ner den. För lösenordsskydd får du även en .htpasswd med bcrypt-hash och för PHP-värden en .user.ini.

Steg 4

Ladda upp och testa

Säkerhetskopiera den befintliga filen, lägg den nya i din domäns rotkatalog och öppna sidan. Testa omdirigeringar först med 302 och därefter med 301.

htpasswd-generator

htpasswd-generator: skapa .htpasswd med bcrypt-hash

För lösenordsskydd med .htaccess behöver du en .htpasswd utöver .htaccess. Den innehåller en användare med ett krypterat lösenord per rad. Generatorn ovan skapar raden i avsnittet ”Lösenordsskydd”. Din webbläsare beräknar hashen och lösenordet skickas ingenstans.

Strukturen i en .htpasswd-fil

En rad per användare i formatet användarnamn:hash. Exempel för användaren och lösenordet ovan:

alice:$2y$10$EixZaYVK1fsbw1ZfbX3OXevuQZIxS3zUD8zrCJEoRasNwfjhtG6f.

Vilken hash är säker?

bcrypt, som känns igen på $2y$, är den rekommenderade hashen och stöds av Apache 2.4. Äldre format som MD5 ($apr1$), SHA-1 och crypt är svagare och går snabbare att knäcka. Därför skapar generatorn bcrypt-hashar.

Alternativ på servern

Med shellåtkomst skapar du samma fil med programmet htpasswd. Alternativet -B använder bcrypt, och -c skapar filen på nytt:

htpasswd -cB .htpasswd benutzername

Vanliga uppgifter

.htaccess-omdirigering, HTTPS, lösenordsskydd och WordPress: regler att kopiera

De fyra vanligaste anledningarna att använda en .htaccess-fil, som färdiga regler. Anpassa sökvägar och domän eller låt generatorn ovan skapa dem.

Omdirigering med .htaccess (301)

Redirect 301 omdirigerar en sida permanent, inklusive allt under den. /alte-seite/info blir /neue-seite/info. Regeln ska finnas i .htaccess i domänens rotkatalog.

Redirect 301 /alte-seite /neue-seite

Tvinga HTTPS med .htaccess

Omdirigerar varje http-begäran till https med 301. Om sidan ligger bakom Cloudflare eller en proxy behöver du också kontrollera headern X-Forwarded-Proto, annars uppstår en omdirigeringsloop.

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

Lösenordsskydd med .htaccess

Begär användarnamn och lösenord för katalogen. AuthUserFile ska innehålla den fullständiga serversökvägen till .htpasswd, helst utanför webbkatalogen.

AuthType Basic
AuthName "Skyddat område"
AuthUserFile /pfad/zur/.htpasswd
Require valid-user

.htaccess för WordPress

Så här ser standardblocket som WordPress skapar ut. Ändra det inte. Egna regler, som omdirigeringar eller HTTPS, ska stå före blocket, annars fungerar de inte.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Översikt

Apache-direktiven bakom byggstenarna

Varje byggsten skriver några tydligt namngivna direktiv i filen. Tabellen visar vilka de är och vilken Apache-modul som ansvarar för dem. Om en valfri modul saknas ignorerar Apache blocket i stället för att visa ett fel.

Byggblock, Apache-direktiv och ansvariga moduler
ByggblockDirektivApache-modul
HTTPS och wwwRewriteCond, RewriteRule [R=301]mod_rewrite
VidarebefordringarRedirect, RedirectMatch, RewriteRulemod_alias, mod_rewrite
LösenordsskyddAuthType Basic, AuthName, AuthUserFile, Require valid-usermod_auth_basic, mod_authn_file, mod_authz_user
IP-åtkomstRequire ip, Require not ip, RequireAny, RequireAllmod_authz_host, mod_authz_core
FelsidorErrorDocumentcore
WebbläsarcacheExpiresActive, ExpiresByTypemod_expires
KomprimeringAddOutputFilterByType DEFLATE, BROTLI_COMPRESSmod_deflate, mod_brotli
Hotlink-skyddRewriteCond %{HTTP_REFERER}, RewriteRule [F]mod_rewrite
SäkerhetOptions -Indexes, FilesMatch, ServerSignature Offcore, mod_authz_core
SäkerhetsheadersHeader always setmod_headers
PHP-värdenphp_value, .user.inimod_php

Upptäck mer

Fler verktyg

FAQ

Vanliga frågor om .htaccess-generator

Korta svar om .htaccess, omdirigeringar, lösenordsskydd och det här verktyget.

.htaccess är en konfigurationsfil för Apache-webbservern som gäller per katalog. Med den styr du omdirigeringar, lösenordsskydd, felsidor, cachning, komprimering och åtkomstregler utan att ändra serverkonfigurationen. Det är särskilt praktiskt på delat webbhotell. Apache och LiteSpeed-webbservern läser filen, medan nginx ignorerar den. I nginx ska reglerna i stället läggas som server- eller location-block i konfigurationen. Apache läser .htaccess på nytt vid varje begäran. På en egen server, till exempel en VPS, bör samma regler därför läggas direkt i den virtuella värdens konfiguration.

Filen ska heta exakt .htaccess, med en punkt i början och utan filändelse. Den ska ligga i domänens rotkatalog, oftast public_html, htdocs eller httpdocs. Reglerna gäller för katalogen där filen ligger och alla underkataloger. Eftersom filer som börjar med en punkt räknas som dolda kan ditt FTP-program ibland dölja dem. Aktivera visning av dolda filer där.

Det enklaste sättet är raden Redirect 301 /alte-seite /neue-seite. Den omdirigerar sökvägen och allt under den, så /alte-seite/info blir /neue-seite/info. Om bara en exakt sökväg ska omdirigeras använder du RedirectMatch 301 med ett reguljärt uttryck. Målet kan också vara en fullständig adress som https://beispiel.de/seite. Generatorn skapar båda varianterna åt dig och varnar om en regel orsakar en omdirigeringsloop. Utöver 301 (permanent) finns 302 (tillfällig), 307, 308 och 410 för borttagna sidor. Testa nya regler med 302 först, eftersom webbläsare lagrar en 301-omdirigering permanent.

Du aktiverar Rewrite-motorn, kontrollerar med RewriteCond om HTTPS är avstängt och omdirigerar med RewriteRule via 301 till https-adressen. Modulen ”HTTPS och www” skapar det färdiga blocket. Om din webbplats körs bakom Cloudflare, en Load Balancer eller Reverse Proxy ser Apache ofta bara HTTP och omdirigerar i en oändlig loop. Då visas ERR_TOO_MANY_REDIRECTS i webbläsaren. Aktivera i så fall alternativet ”Bakom en proxy”, som även kontrollerar headern X-Forwarded-Proto.

Du behöver två filer: .htaccess med AuthType Basic, AuthName, AuthUserFile och Require valid-user samt .htpasswd med en rad per användare i formatet name:hash. Generatorn skapar båda. Lösenordet hashas med bcrypt i din webbläsare, vilket syns på $2y$ i början av hashen. MD5 ($apr1$), SHA-1 och crypt är svagare. Placera .htpasswd utanför webbkatalogen och aktivera HTTPS, eftersom Basic Auth skickar inloggningsuppgifterna vid varje begäran. Om du kombinerar lösenordsskyddet med modulen ”IP-åtkomst” väljer du ”IP eller lösenord” eller ”IP och lösenord”. Generatorn skapar då rätt Require-block.

Ett 500-fel betyder nästan alltid att Apache inte förstår en rad. Vanliga orsaker är ett skrivfel, ett direktiv vars modul saknas på servern eller en inställning som ditt webbhotell inte tillåter i .htaccess, till exempel Options eller php_value. Byt namn på filen via FTP så fungerar sidan igen. Det exakta felet finns i serverns fellogg. Generatorns block för cachning, komprimering, headers och PHP skyddas med IfModule och orsakar inte 500-fel om moduler saknas. php_value fungerar bara när PHP körs som Apache-modul. För PHP-FPM ger generatorn också PHP-värdena som en .user.ini.

WordPress skapar själv ett block mellan # BEGIN WordPress och # END WordPress som du lämnar oförändrat (det finns i avsnittet ovan för kopiering). Lägg reglerna från generatorn före blocket. Omdirigeringar och HTTPS-regler måste stå före WordPress-blocket, annars fungerar de inte eftersom WordPress skickar alla förfrågningar till index.php. WordPress behöver Rewrite Engine för permalänkar, så stäng inte av den.

Nej. Generatorn körs helt i din webbläsare: dina uppgifter skickas inte till någon server och sparas inte. Även bcrypt-hashen skapas lokalt. Adressen innehåller bara namnen på de aktiverade modulerna, aldrig domän, sökvägar, IP-adresser eller lösenord.

Fler frågor?

Kontakta supporten
Bygger du något eget?

Med en egen server finns reglerna där de hör hemma: i din konfiguration

På en VPS hos ZAP-Hosting styr du Apache eller nginx själv, utan begränsningarna hos delat webbhotell.

4,4/5 Trustpilot32.000+ Aktiva servrarSedan 2010

Ingen konfigurering. Ingen risk. Online på några sekunder.

Flexibel avtalstidAvsluta när som helstOnline på 60 sekunder

Letar du efter fler verktyg? Visa alla utvecklarverktyg