Flytt undermappe til rotnivå: Apache, Nginx, IIS & Cloudflare

Jeg flyttet nylig nettstedet mitt fra en undermappe til domeneroten. Dette medførte noen tekniske utfordringer.

Den primære vanskeligheten var å beholde alle artiklene tilgjengelige på den opprinnelige stien, samtidig som URL-ene ble omdirigert fra undermappen til selve domeneroten eller en annen spesifikk adresse.

Konfigurasjon i Apache

Apache HTTP-serveren gir støtte for bruk av RewriteCond. For å utføre denne endringen må du redigere enten .htaccess-filen eller httpd.conf-filen. Legg til følgende linjer for å oppnå ønsket resultat:

RewriteEngine on
RewriteBase /
RewriteRule ^undermappe/(.*)$ /$1 [R=301,NC,L]

I dette tilfellet har vi valgt / som vår basis, og RewriteRule vil håndtere alle URL-er som befinner seg i undermappen ved hjelp av regulære uttrykk. Direktivet R=301 spesifiserer en permanent omdirigering, noe som er viktig for SEO.

Nginx Konfigurasjon

Vi kan implementere en tilsvarende omdirigering med Nginx ved å bruke rewrite-direktivet i /etc/nginx/nginx.conf eller i /etc/nginx/conf.d/default.conf, avhengig av din konfigurasjon. Her er koden:

location ^~ /undermappe {
     rewrite ^/undermappe(.*)$ $1 last;
}

Modifikatoren ^~ sørger for at denne prefiks-lokasjonen prioriteres over eventuelle fremtidige regex-lokasjoner, noe som bidrar til konsistens og forutsigbarhet.

Konfigurasjon i IIS

Med IIS kan vi benytte Rewrite-modulen for å omskrive URL-er som er plassert i en undermappe. Dette gjør at det ser ut som de befinner seg i roten av domenet. Du kan modifisere web.config-filen din i webrotmappen (vanligvis lokalisert i %SystemDrive%inetpubwwwroot) med følgende oppsett:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Root_URL_Rewrite" stopProcessing="true">
                    <match url="^(.*)" />
                    <action type="Rewrite" url="/undermappe/{R:0}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

Alternativt kan du også bruke URL Rewrite-grensesnittet i IIS Manager for å opprette en innkommende regel. Dette kan være mer intuitivt for noen brukere.

Cloudflare Omdirigering

En lignende omdirigering kan konfigureres i Cloudflare. Følg disse trinnene:

  • Logg deg på Cloudflare-kontoen din.
  • Velg den aktuelle Cloudflare-kontoen for det domenet du ønsker å konfigurere omdirigeringen for.
  • Naviger til «Regler»-appen, og velg deretter fanen «Sideregler».
  • Under «Sideregler» klikker du på «Opprett sideregel». Dette vil åpne en ny dialogboks.
  • I «Hvis URL-en samsvarer»-feltet, skriver du inn URL-mønsteret for undermappen, f.eks. https://eksempel.com/undermappe.
  • Klikk deretter på «Legg til en innstilling» og velg «Videresend URL» fra menyen.
  • Under «Velg statuskode» velger du enten 301 (Permanent Redirect) eller 302 (Temporary Redirect).
  • Skriv inn destinasjonsadressen for rotdomenet og klikk på «Lagre og distribuer» for å aktivere regelen.

Et eksempel på dette er å omdirigere alt fra https://tipsbilk.net.com/blog til https://tipsbilk.net.com.

Oppsummering

Som du ser er omdirigering eller kartlegging av en undermappe til roten, eller en annen URL, en vanlig oppgave. Dette støttes av de fleste populære webservere og nettverkstjenester med forskjellige løsninger.

Neste steg kan være å undersøke hvordan du kan hoste flere nettsteder på én enkelt IP-adresse.

Likte du denne artikkelen? Del den gjerne med andre!