Om .htaccess-omdirigeringer
Når du har brug for omdirigeringer
Hver gang en URL ændres. Et redesign, en omstrukturering, en flytning til HTTPS eller en sammenlægning af en side med en anden efterlader en gammel adresse, som personer og søgemaskiner stadig har gemt.
En omdirigering sender dem til den nye side og overfører, når den er konfigureret korrekt, de rankingsignaler, som den gamle URL havde opnået. Spring den over, og signalerne går tabt – sammen med alle, der følger et gammelt link.
Denne generator omdanner en liste over gamle og nye URL’er til de .htaccess-regler, der udfører omdirigeringen.
Hvilken 3xx-kode skal du bruge?
En 301 angiver, at flytningen er permanent. Søgemaskiner overfører den gamle URL’s signaler til den nye og fjerner til sidst den gamle adresse fra deres indeks. Det er det, du ønsker i næsten alle tilfælde.
En 302-redirect betyder, at flytningen er midlertidig. Den gamle URL forbliver indekseret og bevarer sine signaler, hvilket er passende for en vedligeholdelsesside eller en sæsonkampagne, men forkert i alle andre tilfælde. En 302-redirect, der bliver stående i månedsvis, er en af de mere ubemærkede måder at miste placeringer på, fordi intet ved den ser ødelagt ud.
307 og 308 er de nyere ækvivalenter til 302 og 301. Søgemaskiner behandler dem på samme måde, og forskellen er teknisk: De bevarer den oprindelige anmodningsmetode, så en formular-POST ankommer til den nye URL som en POST i stedet for at blive konverteret til en GET. Det er vigtigt for API'er og formularbehandlere, men sjældent for almindelige sider. Apache kræver version 2.4 eller nyere for at kunne levere en 308.
Resten af 3xx-området er ikke beregnet til dette. 300 og 305 er reelt ubrugte, 304 er et cache-svar snarere end en omdirigering, og 303 bruges til at sende en browser til en bekræftelsesside efter indsendelse af en formular – ingen af dem hører hjemme i en omdirigeringsfil.
Sådan fungerer matchningen faktisk
Omdirigeringer matcher begyndelsen af stien i stedet for hele stien. En regel for /blog rammer også /blog/post og /blog/category/thing, uden at der er angivet noget for dem. Det er nyttigt, når man kender til det, men overraskende, når man ikke gør, fordi en bred regel, der står over en specifik regel, gør den specifikke regel uopnåelig.
Det er den samme adfærd, der gør det muligt at flytte et helt domæne: Én enkelt regel med / som den gamle adresse rammer alle sider på webstedet. Peg den mod rodadressen på det nye domæne, så følger alle URL'er med.
Det, som Redirect ikke forstår, er mønstre. Der er ingen jokertegn her, så /* læses som en bogstavelig sti og matcher ingenting – præfiksmatchning klarer allerede den opgave. Når du faktisk har brug for et mønster, tager RedirectMatch i stedet et regulært udtryk og bør kun bruges, når et præfiks ikke er tilstrækkeligt.
Almindelige fejl
- At omdirigere alt til startsiden, hvilket opfattes som en soft 404 og ikke hjælper nogen.
- Kæder, hvor A fører til B, som fører til C. Peg alle gamle URL'er direkte på den endelige destination.
- Løkker, hvor to regler sender trafikken frem og tilbage, indtil browseren giver op.
- Omdirigering til en side, der ikke er en rimelig erstatning for den gamle.
- Redigering af .htaccess uden en sikkerhedskopi. En syntaksfejl får hele webstedet til at gå ned.
Hvor disse regler skal placeres
.htaccess er en Apache-konfigurationsfil, der ligger i roden af dit websted. LiteSpeed læser den også; Nginx gør ikke og kræver sin egen syntaks i serverkonfigurationen.
Reglerne anvendes i rækkefølge, så placér specifikke omdirigeringer over generelle. Gem en kopi af den fungerende fil, før du ændrer noget, for en fejl her medfører en 500-fejl på hver side i stedet for at mislykkes ubemærket.
For en håndfuld URL’er er denne fil det rette sted. For hundredvis er et plugin eller en databasebaseret regel nemmere at vedligeholde end en fil, som ingen har lyst til at åbne.
Brug af .htaccess-redirectgeneratoren
Vælg redirecttypen, tilføj en række for hver URL, der er blevet flyttet, og download eller kopiér reglerne. Gamle stier skal være relative til dit domæne; destinationer skal være fulde URL’er.
Test et par stykker manuelt bagefter. Et redirect, der fungerer i en browser, men returnerer den forkerte statuskode, koster dig stadig de signaler, det var beregnet til at videreføre.
Hvad kan du gøre som det næste
Kontrollér, at reglerne fungerer som forventet, med vores
tjek af omdirigeringer, der følger hvert hop og viser statuskoderne. Bekræft, at destinationen returnerer en
statuskode på 200, og opbyg resten af din konfiguration med
.htaccess-generatoren.