Jak przekierować adresy URL za pomocą NGINX? (Tymczasowy stały)

Opublikowany: 2024-01-26

Spis treści
Co to jest przekierowanie?
Jaka jest potrzeba przekierowania Nginx?
Typowe metody przekierowań Nginx (tymczasowe i stałe)
Jak przekierować adresy URL za pomocą Nginx (tymczasowo i na stałe)
Sprawdź składnię Nginx
Uruchom ponownie serwer Nginx
Streszczenie
Często Zadawane Pytania

Co to jest przekierowanie?

Jeśli chodzi o Nginx, przekierowanie to funkcja serwera WWW, dzięki której ruch w witrynie jest przenoszony z jednego adresu URL na inny. Jest to jedna z najbardziej przydatnych funkcji, dzięki której w łatwy i automatyczny sposób możesz przekierować odwiedzających w inne miejsce.

Chociaż istnieje wiele rodzajów przekierowań, dwa najważniejsze i najczęściej używane to przekierowania stałe (301) i tymczasowe (302).

W tym poście pokażemy metody przekierowań na przykładach, takich jak z www na adres inny niż www, przekierowanie Nginx do domeny, przekierowanie Nginx z HTTP na HTTPS itp.


Przeczytaj: Jak działa adres URL przekierowania WordPress? 5 najlepszych metod


Jaka jest potrzeba przekierowania Nginx?

  • Nginx zapewnia jedną z kluczowych funkcji, czyli przekierowywanie adresów URL witryn na inny adres w oparciu o kryteria.
  • Przekierowania Nginx są bardzo przyjazne dla użytkownika i łatwe w konfiguracji, dzięki czemu zarządzanie adresami URL witryn jest bardzo elastyczne.
  • Jest to bardzo przydatne w zachowaniu rankingu SEO strony, zwłaszcza jeśli migrujesz z jednego CMS-a do drugiego.
  • Funkcja przekierowania pomaga również utrzymać pozycję SERP pomimo zmian w strukturze adresu URL.

Typowe metody przekierowań Nginx (tymczasowe i stałe)

Jak już wspomnieliśmy, dostępnych jest wiele rodzajów metod przekierowań, jednak w praktyce powszechnie stosowane są tylko dwie, tj. przekierowanie tymczasowe i przekierowanie stałe.

Tymczasowe przekierowanie (znaleziono kod odpowiedzi: 302)

  • Już na podstawie samej nazwy można przewidzieć, jakie działanie przyniesie lek tymczasowy. Cóż, ta metoda służy do tymczasowej zmiany lokalizacji strony z jednego miejsca na drugie.
  • Kod odpowiedzi: 302 Znaleziono służy do pokazywania tymczasowego przekazywania strony podczas tych przekierowań.
  • Jest najczęściej używany podczas konserwacji strony internetowej; tymczasowe przekierowanie informuje ruch lub użytkowników o chwilowej niedostępności serwisu.
  • Można go również wykorzystać do przekierowania niekompletnej strony do innego punktu lub strony głównej.
  • Przykładowy scenariusz: Odwiedzający wchodzi na Stronę Serwisu, ale w związku z pracami konserwacyjnymi zostaje przekierowany do powiadomienia informującego, że witryna jest obecnie w trakcie prac konserwacyjnych.
Temporary Redirection
Tymczasowe przekierowanie (znaleziono kod odpowiedzi: 302)

Stałe przekierowanie (znaleziono kod odpowiedzi: 301)

  • Stałe przekierowanie Nginx służy do trwałego przeniesienia domeny strony.
  • Przekierowanie 301 służy do oznaczania stałego ruchu strony w tym kontekście.
  • To przekierowanie jest stosowane głównie wtedy, gdy użytkownik chce zmienić nazwę domeny i nie chce już, aby ruch w witrynie uzyskiwał dostęp do starej lokalizacji.
Permanent Redirection
Stałe przekierowanie (znaleziono kod odpowiedzi: 301)

Jak przekierować adresy URL za pomocą Nginx (tymczasowo i na stałe)

Zanim zaczniemy, najpierw upewnij się, że NGINX jest zainstalowany na Twoim VPS lub wirtualnym serwerze prywatnym. Następnie uzyskaj dostęp do swojego VPS przez SSH. W Wpoven możesz łatwo uzyskać dostęp do swojej witryny za pośrednictwem konsoli wiersza poleceń SSH.


Przeczytaj: Czy mogę uzyskać dostęp do mojej witryny WPOven przez SSH


Konfiguracja Konfiguracja NGINX

  • Lokalizacja pliku konfiguracyjnego NGINX: Konfiguracja NGINX jest zwykle przechowywana w pliku .conf, który jest zwykłym plikiem tekstowym zawierającym dyrektywy i ustawienia serwera.
  • Domyślna lokalizacja: Domyślna lokalizacja plików konfiguracyjnych NGINX często znajduje się w katalogu głównym dokumentów w Twoich witrynach. W tym przypadku wspomina ścieżkę: /etc/nginx/sites-available/directory_name.conf .
  • Katalog główny dokumentów: w tym katalogu przechowywane są pliki Twojej witryny. Katalog główny dokumentu może się różnić; w przypadku serwera z pojedynczą lokacją może znajdować się w katalogu /html . Jeśli na serwerze znajduje się wiele witryn, katalog główny dokumentów może znajdować się w określonym katalogu domeny, np. /domain.com .
  • Nazewnictwo plików konfiguracyjnych: Nazwa pliku .conf odpowiada Twojej witrynie. Na przykład, jeśli witryna znajduje się w katalogu /html , plik .conf może mieć nazwę html.conf . Jeśli znajduje się w katalogu takim jak /domain.com , plik .conf może mieć nazwę domain.com.conf .
  • Domyślny plik konfiguracyjny: W /etc/nginx/sites-available/directory zwykle znajduje się domyślny plik, którego można użyć jako szablonu. Ten plik może zawierać podstawowe konfiguracje, które można skopiować lub zmodyfikować w zależności od potrzeb.
  • Tworzenie nowego pliku konfiguracyjnego: Alternatywnie możesz utworzyć nowy plik .conf. Możesz na przykład utworzyć plik o nazwie html.conf lub domain.com.conf w oparciu o strukturę witryny i konwencje nazewnictwa.

Możesz być zaskoczony, gdy dowiesz się, że w Nginx dostępne jest wbudowane narzędzie zwane dyrektywą „przepisz”. Jest to bardzo przydatne narzędzie, które ułatwia przekierowanie. Najlepsze jest to, że nie trzeba z tym nic specjalnego robić, jest to automatycznie obecne za każdym razem, gdy instalujesz świeży Nginx.

Ta dyrektywa „przepisz” nie jest przeznaczona tylko do wykonywania podstawowych przekierowań, ale jest dość wszechstronna. tzn. będziesz mógł utworzyć dwa rodzaje przekierowań, stałe i tymczasowe.

Wszystko, co musisz zrobić, to przekazać tylko dwa argumenty, stary adres URL i nowy adres URL. Poniżej znajduje się kilka przykładów w celach informacyjnych. Wystarczy wpisać następujące wiersze w konfiguracji serwera.

Najpierw otwórz plik konfiguracyjny, wpisując następujące polecenie w terminalu.

$ sudo vi /etc/nginx/nginx.conf

następnie użyj poniższych poleceń podanych poniżej, zgodnie z wymaganiami.

1. Przekierowanie Nginx od strony do strony

Tymczasowe przekierowanie między stronami Nginx

server {
# Temporary redirect to an individual page
rewrite ^/oldpage$ http://www.example.com/newpage redirect;
}

Stałe przekierowanie strony na stronę Nginx

server {
# Permanent redirect to an individual page
rewrite ^/oldpage$ http://www.example.com/newpage permanent;
}

Z powyższych poleceń zauważyłeś, że jeśli chcesz utworzyć stałe przekierowanie, wystarczy, że na końcu dyrektywy zastąpisz słowo „przekierowanie” słowem „stałe”.

2. Przekierowanie WWW na adres Nginx inny niż www

Stałe przekierowanie z www na adres inny niż www:

server {
# Permanent redirect to non-www
server_name www.example.com;
rewrite ^/(.*)$ http://example.com/$1 permanent;
}


Uwaga : jeśli chcesz przekierować z adresu innego niż www na www, wystarczy zastąpić adresy URL witryn wymienione w powyższym poleceniu. tj. Zamień www.example.com na example.com i odwrotnie.


3. Jak przekierować adres URL z HTTP na HTTPS w Nginx?

Przed wykonaniem tego przekierowania nie zapomnij zainstalować certyfikatu SSL. Przekierowanie na HTTPS ma swoje zalety. Pomaga chronić Twoją witrynę przed wszystkimi atakami MIMT, kradzieżą danych itp. Nawet ich porty są różne, na przykład HTTP używa portu 80, podczas gdy HTTPS używa portu 443.

Aby chronić wszystkie poufne informacje wymieniane między Tobą a odwiedzającym, potrzebujesz następujących poleceń:

server {
listen 80;
server_name www.domain.tld;
return 301 https://www.domain.tld$request_uri;
}

4. Przekieruj adres URL Nginx na inny adres URL

Jeśli chcesz trwale przekierować, np. przekierowanie nginx na inny adres URL 301, użyj następującego polecenia:

Do nowej domeny ze starszej domeny,

server {
listen 80;
listen 443 ssl;
server_name olddomain.com www.olddomain.com;
return 301 $scheme://www.newdomain.com$request_uri;
}

LUB

server {
# Permanent redirect to new URL
listen 443 ssl;
# Add this line to listen on the HTTPS port and enable SSL server_name olddomain.com;
ssl_certificate /path/to/your/ssl_certificate.crt; # Update with the actual path to your SSL certificate
ssl_certificate_key /path/to/your/ssl_certificate_key.key; # Update with the actual path to your SSL certificate key
# Additional SSL settings can be configured here
rewrite ^/(.*)$ https://newdomain.com/$1 permanent;
# Update to use 'https' protocol
}

  • Skonfigurowaliśmy przekierowanie dla naszej witryny za pomocą narzędzia zwanego dyrektywą „rewrite” w Nginx.
  • ^/(.*)$ to wyrażenie regularne, które użyje wszystkiego po ostatnim ukośniku ( / ) w adresie URL.
  • Na przykład, jeśli ktoś spróbuje uzyskać dostęp do http://olddomain.com/index.html , użyje części index.html .
  • Tak więc, jeśli zamierzasz wejść na http://olddomain.com/index.html , płynnie przekieruje Cię ona na http://newdomain.com/index.html .
  • Pomysł jest taki, aby płynnie przekierowywać użytkowników do tej samej treści w nowej domenie.
  • Aby mieć pewność, że to przekierowanie będzie trwałe, dodaliśmy specjalne słowo kluczowe „Stałe” po dyrektywie rewrite .
  • Informuje to zarówno przeglądarki, jak i wyszukiwarki, że jest to trwała zmiana, za pomocą tak zwanego kodu stanu HTTP 301.

5. Nginx przekierowuje do innej domeny bez zmiany adresu URL

Załóżmy, że chcesz przekierować domenę olddomain.com na newdomain.com bez zmiany adresu URL. Oznacza to, że gdy wpiszesz olddomain.com, powinno ono przekierować do nowa domena.com, ale adres URL powinien nadal wyświetlać olddomain.com.

Oto jak możesz podejść,

server {
listen 80;
server_name olddomain.com;

location / {
proxy_pass http://newdomain.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
}
}

6. Konkretne przekierowanie Nginx do witryny

server {
listen 80;
server_name example.com;
return 301 http://newexample.com$request_uri;
}


Sprawdź składnię Nginx

Aby sprawdzić, czy cała składnia nginx jest poprawna, użyj następującego polecenia:

nginx -t

Jeśli dane wyjściowe okażą się puste, oznacza to, że składnia jest poprawna i musisz zrestartować serwer Nginx, aby wprowadzone modyfikacje zadziałały.


Uruchom ponownie serwer Nginx

Nie zapomnij zrestartować serwera Nginx, aby zastosować te reguły, używając polecenia:

sudo systemctl restart Nginx


Streszczenie

Jak już wspomniano powyżej, Nginx okazał się najpotężniejszym i najbardziej przyjaznym dla użytkownika serwerem WWW, który umożliwia łatwe tworzenie stałych i tymczasowych przekierowań Nginx.

Po przeczytaniu tego bloga wiesz już, jak utworzyć przekierowania za pomocą NGINX. Czy przekierowanie nginx z HTTP na HTTPS, z jednej domeny do innej domeny itp.

Dowiedziałeś się również, jak przekierowania wpływają na Twoje rankingi SEO, więc zawsze upewnij się, że używasz prawidłowego typu przekierowania.

Dzięki tej przydatnej funkcji możesz łatwo zmienić strukturę swojej witryny zgodnie z trendami i wymaganiami oraz powstrzymać się od obaw o ruch i utratę rankingów SERP.

WPOven oferuje opcje hostingu zarządzanego przez WordPress dla Twojego następnego projektu NGINX. Skontaktuj się z nami, aby omówić najlepsze dla Ciebie opcje.

Jeśli masz jakieś pytania lub sugestie, daj nam znać w sekcji komentarzy poniżej:


Często Zadawane Pytania

Jak przekierować adres URL w Nginx?

W Nginx dostępne jest wbudowane narzędzie zwane dyrektywą „przepisz”. Jest to bardzo przydatne narzędzie, które ułatwia przekierowanie. Najlepsze jest to, że nie trzeba z tym nic specjalnego robić, jest to automatycznie obecne za każdym razem, gdy instalujesz świeży Nginx.

Jaki jest kod przekierowania dla Nginx?

Nginx jest dość wszechstronny i oferuje dwa rodzaje przekierowań, stałe, których kod odpowiedzi to 301, i tymczasowy kod odpowiedzi redukcji to 302.

Do czego służy NGINX?

Nginx to wszechstronny i wydajny serwer WWW oraz serwer odwrotnego proxy. Jest powszechnie używany do następujących celów: serwer WWW , serwer Reverse Proxy , moduł równoważenia obciążenia , zakończenie protokołu SSL/TLS , buforowanie , sieć dostarczania treści (CDN) , bramka API , obsługa protokołu WebSocket , bezpieczeństwo i architektura wysokiej dostępności