Redirecționează subfolderul către folderul rădăcină în Apache, NGINX, IIS și Cloudflare

Am avut un site web organizat într-un subdirector și am hotărât să-l mut în directorul rădăcină al domeniului.

Cea mai mare provocare a fost să menținem toate articolele accesibile prin aceeași cale ca și când ar fi fost într-un subdirector, în timp ce redirecționăm adresa URL către rădăcina domeniului sau către o altă locație dorită.

Apache

Serverul Apache HTTP suportă directiva RewriteCond. Pentru a realiza această modificare, trebuie să editați fișierul .htaccess sau httpd.conf și să adăugați următoarele linii:

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

Aici, folosim / ca bază, iar directiva RewriteRule se aplică tuturor adreselor URL din subdirectorul nostru, utilizând expresii regulate. Parametrul R=301 indică o redirecționare permanentă.

Nginx

Putem obține o redirecționare similară cu serverul web Nginx, folosind directiva de rescriere din fișierul /etc/nginx/nginx.conf sau /etc/nginx/conf.d/default.conf:

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

Modificatorul ^~ asigură că această locație de prefix are prioritate chiar dacă adăugăm locații regex ulterior.

IIS

În IIS, putem folosi modulul Rewrite pentru a rescrie URL-urile care se află într-un subdirector, astfel încât să apară ca și cum ar fi în directorul rădăcină. Puteți edita fișierul web.config din folderul webroot (%SystemDrive%inetpubwwwroot) cu următorul cod:

<?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="/subfolder/{R:0}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

Alternativ, puteți utiliza interfața grafică a modulului de rescriere URL din Manager IIS pentru a adăuga o regulă de intrare.

Cloudflare

Putem realiza o redirecționare asemănătoare folosind Cloudflare, urmând pașii de mai jos:

  • Autentificați-vă în contul dumneavoastră Cloudflare.
  • Selectați contul Cloudflare corespunzător domeniului pentru care doriți să configurați redirecționarea URL-ului.
  • Accesați secțiunea Reguli, apoi fila Reguli de pagină.
  • În Reguli de pagină, dați clic pe Creare regulă de pagină. Se va deschide o fereastră pentru crearea regulilor de pagină pentru domeniul dumneavoastră.
  • În câmpul Dacă adresa URL se potrivește, introduceți modelul URL pentru subdirectorul care ar trebui să corespundă acestei reguli, de exemplu, https://exemplu.com/subdirector.
  • Apoi, dați clic pe Adăugați o setare și alegeți Adresă URL de redirecționare din meniul drop-down.
  • Dați clic pe Selectați codul de stare și alegeți 301 (Redirecționare permanentă) sau 302 (Redirecționare temporară).
  • Introduceți adresa URL de destinație pentru domeniul rădăcină și dați clic pe Salvare și implementare pentru a finaliza.

Exemplul de mai sus are rolul de a redirecționa tot traficul de la https://tipstrick.ro.com/blog către https://tipstrick.ro.com.

Concluzie

După cum ați observat, redirecționarea sau maparea unui subdirector către directorul rădăcină sau către o altă adresă URL este o procedură comună, iar aceasta este suportată de majoritatea serverelor și platformelor web populare, oferind diverse opțiuni.

În continuare, descoperiți cum puteți găzdui mai multe site-uri web pe o singură adresă IP.

V-a plăcut acest articol? Vă invităm să-l împărtășiți cu alții!