Htaccess-omdirigeringsgenerator

Varje gång du migrerar en blogg, ändrar din URL-struktur eller slår samman gamla sidor får Apaches .htaccess ta huvuddelen av städningen. Den här generatorn omvandlar en enkel källa → mål-mappning till rätt RewriteRule-direktiv med rätt flaggor, redo att läggas in i webbplatsens .htaccess-fil.

Så genererar du omdirigeringsregler

  1. 1

    Välj omdirigeringstyp

    301 permanent för SEO-säkra flyttar, 302 tillfällig för A/B-tester och säsongsomdirigeringar.

  2. 2

    Ange källa och mål

    Exakta sökvägar eller regex-mönster: den gamla sökvägen blir RewriteRule-mönstret och den nya URL:en omdirigeringsmålet.

  3. 3

    Kontrollera flaggorna

    Varje regel får automatiskt rätt flagga, `[R=301,L]` eller `[R=302,L]`, så att blocket fungerar direkt med mod_rewrite.

  4. 4

    Kopiera direktiven

    Det genererade blocket placeras inuti avsnittet `<IfModule mod_rewrite.c>` i .htaccess.

Direktiv för mod_rewrite mot mod_alias

Apache erbjuder två moduler för omdirigeringar. Välj utifrån regelns komplexitet.

Beslutsguide

Krav Använd Exempel
Exakt gammal URL → exakt ny URL Redirect Redirect 301 /old /new
Jokerteckenprefix RedirectMatch RedirectMatch 301 ^/blog/(.*)$ /articles/$1
Matchning på frågesträng RewriteRule Se nedan
Framtvinga HTTPS RewriteRule RewriteCond %{HTTPS} off + regel
Villkorlig (webbläsare, cookie) RewriteRule Med RewriteCond

Exempel: framtvinga HTTPS med www

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Exempel: flytta /blog/post-123 till /articles/post-123

RewriteEngine On
RewriteRule ^blog/(.*)$ /articles/$1 [L,R=301]

Flaggor du kommer att se

  • L, sista, fortsätt inte bearbeta fler regler.
  • R=301 eller R=302, omdirigera med den statuskoden.
  • NC, skiftlägesokänslig.
  • QSA, lägg till den ursprungliga frågesträngen i den nya URL:en.
  • NE, koda inte om specialtecken i målet.

Vanliga misstag

  • Att glömma RewriteEngine On, utan det har ingen RewriteRule någon effekt.
  • Att använda 302 som standard, Google behandlar det som tillfälligt, så den gamla URL:en behåller sin ranking.
  • Kedjade omdirigeringar (gammal → mellanled → slutlig), sikta alltid på ett enda hopp; varje extra hopp förlorar länkvärde och ökar latensen.

Vanliga frågor

Använd 301 för permanenta flyttar: webbplatsmigrering, byte av URL-slug, HTTPS-uppgradering. Använd 302 endast för tillfälliga situationer, som att leda till en underhållssida eller en A/B-uppdelning. Sökmotorer överför rankningssignaler vid 301, inte tillförlitligt vid 302.

Den vanligaste orsaken är att man glömmer det inledande snedstrecket i mönstret. I RewriteRule matchar mönstret sökvägen utan det inledande snedstrecket (t.ex. ^blog/). I Redirect (mod_alias) börjar mönstret med ett snedstreck (/blog). Blanda inte de två konventionerna.

Ja, använd RewriteCond %{QUERY_STRING} ^id=123$ före en RewriteRule. Vanlig Redirect läser inte frågesträngen; bara RewriteRule kan matcha på den.

Ja, vid nästa begäran, Apache läser om .htaccess per begäran. Ingen omstart av servern behövs. Om inget händer, kontrollera att AllowOverride All är satt i vhost för katalogen.

Relaterade verktyg

Verktyget finns på andra språk