2022-11-23 10:40 Doba čtení: 5 min

Přesměrujte podsložku do kořenové složky v Apache, NGINX, IIS a Cloudflare

Původně jsem měl svůj web umístěný v podsložce, ale rozhodl jsem se ho přesunout přímo do kořenového adresáře domény.

Hlavním cílem bylo zachovat strukturu všech článků, jako by stále byly v podsložce, a zároveň zajistit, aby se URL adresy přesměrovaly do kořenového adresáře domény nebo jiného určeného umístění.

Apache

Webový server Apache HTTP podporuje funkci RewriteCond. Pro provedení této změny je nutné upravit konfigurační soubor .htaccess nebo httpd.conf a přidat následující řádky:

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

V tomto případě používáme / jako základní adresář a naše RewriteRule pomocí regulárních výrazů zpracovává všechny URL adresy v rámci podsložky. R=301 označuje trvalé přesměrování.

Nginx

Podobného přesměrování lze dosáhnout i pomocí webového serveru Nginx, a to pomocí direktivy rewrite v souboru /etc/nginx/nginx.conf nebo /etc/nginx/conf.d/default.conf:

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

Modifikátor ^~ zde zajišťuje, že toto umístění s předponou bude mít přednost i v případě, že byste v budoucnu přidali umístění s regulárními výrazy.

IIS

V prostředí IIS můžeme použít modul Rewrite k přepsání URL adres, které se nacházejí v podsložce, tak aby se tvářily, že jsou v kořenovém adresáři. Můžete upravit soubor web.config, který se nachází ve složce webroot (%SystemDrive%inetpubwwwroot) a přidat následující konfiguraci:

<?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>

Alternativně můžete použít uživatelské rozhraní Správce služby IIS k přidání příchozího pravidla pro přepisování URL adres.

Cloudflare

Podobného přesměrování lze dosáhnout i v Cloudflare pomocí následujících kroků:

  • Přihlaste se ke svému účtu Cloudflare.
  • Vyberte příslušný účet Cloudflare pro doménu, u které chcete přidat přesměrování URL adres.
  • Klikněte na aplikaci Pravidla a poté na záložku Pravidla stránky.
  • V sekci Pravidla stránky klikněte na Vytvořit pravidlo stránky. Zobrazí se dialogové okno Vytvořit pravidlo stránky pro vaši doménu.
  • V části Pokud se adresa URL shoduje, zadejte vzor URL adresy pro podsložku, která by měla odpovídat pravidlu, například https://example.com/podsložka.
  • Dále klikněte na Přidat nastavení a z rozbalovací nabídky vyberte Přesměrování URL.
  • Klikněte na Vybrat stavový kód a vyberte 301 (trvalé přesměrování) nebo 302 (dočasné přesměrování).
  • Zadejte cílovou adresu URL vaší kořenové domény a dokončete kliknutím na tlačítko Uložit a nasadit.

Výše uvedený příklad ukazuje přesměrování všeho z https://etechblog.cz.com/blog na https://etechblog.cz.com

Závěrem

Jak vidíte, přesměrování nebo mapování podsložky na kořenovou nebo jinou URL adresu je běžný úkol, který většina populárních prohlížečů podporuje různými způsoby.

Dále se můžete dozvědět, jak hostovat více webových stránek na jedné IP adrese.

Líbil se vám tento článek? Co takhle ho sdílet s ostatními?

Tomáš Dvořák
Autor
Czechia

Píše o bezpečnosti, webu a chytrých službách s důrazem na srozumitelnost.

Předchozí článek
Terraform vs. Kubernetes: Porovnání mezi hlavami
Další článek
Opravte chybu serveru Google Chrome odeslána žádná data