Przekieruj podfolder do folderu głównego w Apache, NGINX, IIS i Cloudflare

Miałem swoją witrynę w podfolderze i zdecydowałem się przejść na poziom główny domeny.

Głównym wyzwaniem było utrzymanie wszystkich artykułów na tej samej ścieżce jako podfolder przy jednoczesnym przekierowaniu adresu URL do katalogu głównego domeny lub innej lokalizacji.

Apache

Serwer HTTP Apache obsługuje RewriteCond. Aby wprowadzić tę zmianę, edytuj plik .htaccess lub httpd.conf i dodaj do niego poniższe wiersze:

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

Tutaj używamy / jako naszej bazy, a nasza reguła RewriteRule działa dla wszystkich adresów URL w naszym podfolderze przy użyciu wyrażeń regularnych. R=301 określa stałe przekierowanie.

Nginx

Możemy osiągnąć podobne przekierowanie z serwerem WWW Nginx, używając dyrektywy rewrite w pliku /etc/nginx/nginx.conf lub /etc/nginx/conf.d/default.conf:

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

Tutaj modyfikator ^~ zapewnia, że ​​ta lokalizacja prefiksu nadal będzie miała pierwszeństwo, jeśli w przyszłości dodasz dowolne lokalizacje wyrażeń regularnych.

IIS

W IIS możemy użyć modułu Rewrite, aby przepisać adresy URL, które znajdują się w podfolderze i chcemy wyglądać tak, jakby znajdowały się w katalogu głównym. Możesz edytować swój plik web.config w folderze webroot (%SystemDrive%inetpubwwwroot) za pomocą czegoś takiego:

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

Alternatywnie możesz dodatkowo użyć interfejsu użytkownika ponownego zapisywania adresów URL w Menedżerze usług IIS, aby dodać regułę ruchu przychodzącego.

Rozbłysk chmur

Możemy osiągnąć podobne przekierowanie za pomocą Cloudflare, wykonując poniższe kroki:

  • Zaloguj się na swoje konto Cloudflare.
  • Kliknij odpowiednie konto Cloudflare dla domeny, w której chcesz dodać przekierowanie adresów URL.
  • Kliknij aplikację Reguły, a następnie kliknij kartę Reguły strony.
  • W obszarze Reguły strony kliknij opcję Utwórz regułę strony. Zostanie otwarte okno dialogowe Utwórz regułę strony dla Twojej domeny.
  • Teraz w obszarze Jeśli adres URL pasuje, wprowadź wzorzec adresu URL dla podfolderu, który powinien pasować do reguły, na przykład https://example.com/subfolder.
  • Następnie kliknij Dodaj ustawienie i wybierz Przekazywanie adresu URL z menu rozwijanego.
  • Kliknij Wybierz kod statusu i wybierz 301 (Stałe przekierowanie) lub 302 (Tymczasowe przekierowanie).
  • Wprowadź docelowy adres URL domeny głównej i kliknij Zapisz i wdróż, aby zakończyć.

Powyższy przykład to przekierowanie wszystkiego z https://newsblog.pl.com/blog na https://newsblog.pl.com

Podsumowanie

Jak widać, przekierowanie lub mapowanie podfolderu do katalogu głównego lub innego adresu URL jest częstym zadaniem i jest obsługiwane przez większość popularnych przeglądarek z różnymi opcjami.

Następnie dowiedz się, jak możesz hostować wiele witryn na jednym adresie IP.

Podobał Ci się artykuł? A co powiesz na dzielenie się ze światem?