Moja strona internetowa pierwotnie funkcjonowała w strukturze podfolderu, jednak podjąłem decyzję o przeniesieniu jej bezpośrednio do głównej domeny.
Kluczową kwestią było zapewnienie, że wszystkie treści, które wcześniej były dostępne pod adresem z podfolderem, będą teraz działać pod nowym adresem w domenie głównej, zachowując jednocześnie ich pierwotne ścieżki. Konieczne było również przekierowanie starych adresów na nowe.
Konfiguracja w Apache
Serwer Apache HTTP umożliwia zarządzanie przekierowaniami za pomocą dyrektywy RewriteCond
. Aby to zrealizować, należy zmodyfikować plik .htaccess
lub httpd.conf
, dodając do niego następujące linie:
RewriteEngine on RewriteBase / RewriteRule ^subfolder/(.*)$ /$1 [R=301,NC,L]
W powyższym kodzie, /
definiuje bazę, a reguła RewriteRule
, posługując się wyrażeniami regularnymi, obejmuje wszystkie adresy URL umieszczone w podfolderze. Parametr R=301
oznacza stałe przekierowanie.
Ustawienia serwera Nginx
Podobne przekierowanie możemy osiągnąć na serwerze Nginx, wykorzystując dyrektywę rewrite
w pliku konfiguracyjnym /etc/nginx/nginx.conf
lub /etc/nginx/conf.d/default.conf
:
location ^~ /subfolder { rewrite ^/subfolder(.*)$ $1 last; }
W tym przypadku modyfikator ^~
gwarantuje, że ta reguła prefiksu będzie miała priorytet, nawet jeśli w przyszłości dodamy inne reguły oparte na wyrażeniach regularnych.
Przekierowania w IIS
W środowisku IIS, za pomocą modułu Rewrite, możemy przepisać adresy URL z podfolderu tak, aby były postrzegane jako elementy katalogu głównego. Aby to osiągnąć, należy edytować plik web.config
, który znajduje się w folderze webroot
(zazwyczaj %SystemDrive%inetpubwwwroot
). Przykładowa konfiguracja:
<?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żna skonfigurować przekierowanie za pomocą interfejsu użytkownika modułu URL Rewrite w Menedżerze usług IIS, dodając regułę dla ruchu przychodzącego.
Cloudflare jako narzędzie przekierowań
Przekierowanie można również zrealizować za pośrednictwem platformy Cloudflare, postępując zgodnie z poniższą instrukcją:
- Zaloguj się do swojego konta Cloudflare.
- Wybierz odpowiednie konto dla domeny, gdzie chcesz wprowadzić przekierowania.
- Przejdź do sekcji „Reguły”, a następnie wybierz „Reguły strony”.
- Kliknij opcję „Utwórz regułę strony”. Otworzy się okno konfiguracji reguły.
- W sekcji „Jeśli adres URL pasuje”, wprowadź wzorzec adresu, który odnosi się do podfolderu, na przykład
https://example.com/subfolder
. - Kliknij „Dodaj ustawienie” i wybierz „Przekierowanie adresu URL”.
- Wybierz kod statusu przekierowania – 301 (stałe) lub 302 (tymczasowe).
- Wprowadź docelowy adres domeny głównej i zatwierdź zmiany przyciskiem „Zapisz i wdróż”.
Powyższy przykład ilustruje przekierowanie wszystkich adresów z https://newsblog.pl.com/blog
na https://newsblog.pl.com
.
Podsumowanie
Jak widać, zadanie przekierowania podfolderu do katalogu głównego lub innego adresu URL jest powszechne i obsługiwane przez większość popularnych serwerów oraz platform z wieloma opcjami konfiguracji.
Zachęcam do dalszego zgłębiania wiedzy, na przykład jak można hostować wiele witryn na jednym adresie IP.
Czy artykuł okazał się pomocny? Może podzielisz się nim ze swoimi znajomymi?
newsblog.pl