Utilia

Generator för .htaccess-omdirigeringar

Skapa 301- och 302-omdirigeringar för .htaccess eller Nginx, tvinga HTTPS och www, flytta en domän och rätta snedstreck, med kontroll av slingor och kedjor.

Server
Typ av omdirigering
Kanonisk adress
Avslutande snedstreck
Flytta hela domänen

Säkerhetskopiera din nuvarande konfiguration först och testa med 302 innan du byter till 301: webbläsare cachar permanenta omdirigeringar.

Kontroller

Så använder du generatorn för .htaccess-omdirigeringar

  1. Välj din Server: Apache (.htaccess) eller Nginx, och sedan Typ av omdirigering: 301 – permanent eller 302 – tillfällig.
  2. Under Sidomdirigeringar skriver du en omdirigering per rad: den gamla sökvägen, ett mellanslag och sedan den nya webbadressen, till exempel /gammal-sida.html /ny-sida/. En tabb, ett kommatecken eller -> fungerar också, och du kan klistra in kompletta gamla webbadresser eller befintliga rader av typen Redirect 301 /a /b.
  3. Ange vid behov Din domän (till exempel example.com) så att sidomdirigeringarna pekar direkt på den slutliga adressen.
  4. Under Kanonisk adress kryssar du i Tvinga HTTPS och väljer Tvinga www, Ta bort www eller Låt www vara som det är. Under Avslutande snedstreck väljer du om det ska läggas till eller tas bort.
  5. Om hela webbplatsen har flyttat fyller du i Flytta hela domänen med Gammal domän och Ny adress, och låter Behåll sökvägen vara ikryssat så att varje sida hamnar på sin motsvarighet.
  6. Läs Kontroller och Kopiera eller Ladda ner sedan reglerna. Använd Läs in ett exempel för att se en komplett konfiguration.

Allt genereras i din webbläsare: inget du skriver in skickas till en server.

Så fungerar de genererade reglerna

För Apache skriver verktyget mod_rewrite-regler som börjar med en enda RewriteEngine On. Varje sida blir en RewriteRule vars mönster börjar med ^/?, så att den fungerar både i en .htaccess-fil (där det inledande snedstrecket tas bort) och i ett <VirtualHost>-block. Punkter, hakparenteser, plustecken och andra tecken för reguljära uttryck i dina sökvägar skyddas, och ett mellanslag blir \x20. I den nya webbadressen skyddas $ och % eftersom Apache annars tolkar dem som bakåtreferenser, och flaggan NE hindrar Apache från att koda webbadressen en andra gång.

En RewriteRule ser aldrig frågesträngen. När en gammal adress innehåller en, till exempel /produkt.php?id=42, lägger verktyget till en rad RewriteCond %{QUERY_STRING} ^id=42$ och flaggan QSD, så att de gamla parametrarna släpps i stället för att kopieras till den nya sidan.

Reglerna ordnas för att undvika onödiga hopp: först domänflytt, sedan sidomdirigeringar, därefter avslutande snedstreck och sist HTTPS och www. HTTPS och www hanteras av en enda regel, så att http://www.example.com går till https://example.com i en enda omdirigering. När din domän är känd pekar sid- och snedstrecksomdirigeringar redan på den slutliga HTTPS-adressen.

För Nginx blir HTTPS, www och domänflyttar egna server-block med return 301, och sidomdirigeringar blir rewrite-rader som du klistrar in i ditt huvudsakliga server-block. De körs före matchningen av location, så de går också före regeln för avslutande snedstreck. Ett ? sist i ett mål hindrar Nginx från att lägga till den gamla frågesträngen när det inte ska göras.

Kontroller som utförs

  • En sida som omdirigeras till sig själv, eller två sidor som omdirigeras till varandra (en slinga som slutar med ”för många omdirigeringar”).
  • Kedjor som A → B → C: låt A peka direkt på C, eftersom varje extra hopp gör besökare långsammare och slösar på genomsökningsbudgeten.
  • Samma gamla adress listad två gånger, där bara den första regeln skulle gälla.
  • Ett mål som varken är en absolut webbadress eller en sökväg som börjar med /, eller ett mål med http:// eller fel www på din egen domän.
  • En inställning för avslutande snedstreck som skulle omdirigera ett mål en gång till eller skicka tillbaka det till sin källa.

Vanliga frågor

Ska jag använda 301 eller 302?

Använd 301 när flytten är permanent: sökmotorer för över den gamla sidans signaler till den nya och uppdaterar sitt index. Använd 302 för tillfälliga ändringar som underhåll eller en kort kampanj. Webbläsare cachar 301-omdirigeringar, så testa med 302 först.

Var lägger jag .htaccess-filen?

I webbplatsens rotmapp (ofta public_html eller www), bredvid index.php eller index.html. Nedladdningen heter htaccess.txt; döp om den till .htaccess, eller klistra in reglerna överst i din befintliga fil. Spara en säkerhetskopia av originalet.

Varför använda RewriteRule i stället för Redirect 301?

Redirect-rader kommer från mod_alias och körs i en annan fas än RewriteRule. Om du blandar båda i en fil blir ordningen svår att förutse. Med enbart mod_rewrite hamnar alla regler i en förutsägbar följd, och frågesträngar kan matchas.

Min webbplats visar ”för många omdirigeringar” efter att jag tvingat HTTPS. Varför?

Bakom en lastbalanserare, ett CDN eller en proxy som avslutar HTTPS ser Apache varje begäran som vanlig HTTP, så %{HTTPS} är alltid av. Testa då den vidarebefordrade headern i stället, till exempel RewriteCond %{HTTP:X-Forwarded-Proto} !https, eller aktivera omdirigeringen i CDN:et.

Ändrar det här verktyget min server?

Nej. Det genererar bara text i din webbläsare. Ingenting skickas någonstans, och du bestämmer själv var och hur reglerna installeras.