Jak przekierować www na bez www za pomocą Nginx na Ubuntu 14.04

Wprowadzenie

Nginx to popularny serwer WWW o otwartym kodzie źródłowym, ceniony za swoją szybkość i stabilność. Jest powszechnie stosowany do obsługi witryn internetowych o dużym ruchu. Jedną z często spotykanych operacji, którą można zrealizować za pomocą Nginx, jest zmiana kierunku ruchu internetowego z adresów zawierających przedrostek „www” na te bez niego, lub odwrotnie.

Większość preferuje adresy bez „www”, gdyż są one krótsze, łatwiejsze do zapamiętania i estetyczniej prezentują się w przeglądarce. Ustawienie przekierowania z „www” na wersję bez „www” zapewnia spójność dla użytkowników i eliminuje problem duplikacji treści, co ma pozytywny wpływ na pozycjonowanie w wyszukiwarkach (SEO).

Ten przewodnik szczegółowo opisze, jak skonfigurować serwer Nginx na Ubuntu 14.04, aby przekierowywał adresy z „www” na wersję bez „www”.

Konfiguracja serwera Nginx

Modyfikacja pliku konfiguracyjnego Nginx

Na początek, musimy zmodyfikować plik konfiguracyjny Nginx, który zazwyczaj znajduje się w lokalizacji /etc/nginx/sites-available/default. Otwórz ten plik w edytorze tekstu, korzystając z uprawnień administratora (root):

sudo nano /etc/nginx/sites-available/default

Wprowadzenie reguły przekierowania

Wewnątrz bloku serwera, dodaj następujący kod:


server {
...
server_name www.example.com;
return 301 $scheme://example.com$request_uri;
...
}

Pamiętaj, aby zamienić „example.com” na rzeczywistą nazwę swojej domeny.

Dyrektywa server_name określa, dla jakiej domeny ma działać przekierowanie. Natomiast return przekierowuje ruch do wersji strony bez „www”, używając kodu 301, co oznacza trwałe przeniesienie.

Zapisanie zmian i sprawdzenie poprawności

Po wprowadzeniu dyrektywy, zapisz zmiany i zamknij edytor tekstu. Następnie, użyj polecenia sudo nginx -t, aby przetestować konfigurację.

sudo nginx -t

Jeśli konfiguracja jest poprawna, zobaczysz komunikat podobny do tego:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

Restart serwera Nginx

W przypadku poprawnej konfiguracji, uruchom ponownie serwer Nginx, aby wprowadzone zmiany zaczęły obowiązywać:

sudo systemctl restart nginx

Weryfikacja działania przekierowania

Aby upewnić się, że przekierowanie działa poprawnie, wpisz w przeglądarce adres swojej strony z „www”. Powinno nastąpić automatyczne przekierowanie do wersji adresu bez przedrostka „www”.

Dodatkowe wskazówki

Kody statusu 301 i 302

W zależności od potrzeb, możesz zastosować kod statusu 301 lub 302 w dyrektywie return. Kod 301 (przeniesienie trwałe) jest zalecany, gdy chcesz na stałe przekierować użytkownika pod nowy adres. Kod 302 (znaleziono tymczasowo) używa się, gdy przekierowanie jest czasowe, na przykład w trakcie prac konserwacyjnych.

Przekierowanie wyłącznie dla HTTPS

Jeżeli twoja witryna działa tylko w trybie HTTPS, zmodyfikuj konfigurację w Nginx, aby przekierowanie działało wyłącznie dla połączeń HTTPS. W tym celu, dodaj następujący kod do pliku konfiguracyjnego:


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

Wyłączenie przekierowań dla konkretnych ścieżek

Możesz zdefiniować ścieżki, które nie powinny być przekierowywane. Na przykład, aby wyłączyć przekierowanie dla strony logowania, dodaj:


location /login {
return 302;
}

Podsumowanie

Właśnie udało Ci się skonfigurować serwer Nginx na Ubuntu 14.04 do przekierowania ruchu z „www” na adres bez „www”. Takie przekierowanie zapewnia spójność dla użytkowników, zapobiega duplikacji treści i korzystnie wpływa na pozycję w wyszukiwarkach. Pamiętaj, aby dokładnie przetestować konfigurację, by mieć pewność, że przekierowania działają tak, jak zaplanowano.

Najczęściej zadawane pytania

1. Dlaczego warto przekierowywać z „www” na wersję bez „www”?

* Zapewnia spójność w dostępie do witryny.
* Eliminuje ryzyko duplikacji zawartości.
* Wpływa pozytywnie na optymalizację pod kątem wyszukiwarek (SEO).

2. Który kod statusu wybrać w dyrektywie return?

* 301 (przeniesienie stałe) dla przekierowań, które mają działać zawsze.
* 302 (znaleziono tymczasowo) dla przekierowań tymczasowych.

3. Czy mogę ustawić przekierowanie tylko dla HTTPS?

* Tak, dodając odpowiednią konfigurację dla bloku HTTPS.

4. Czy można wykluczyć pewne ścieżki z przekierowania?

* Tak, poprzez dodanie sekcji location w konfiguracji Nginx.

5. Jak zweryfikować działanie przekierowania?

* Wpisz w przeglądarce adres z „www”.
* Powinieneś zostać przeniesiony do adresu bez „www”.

6. Co zrobić, gdy przekierowanie nie działa?

* Upewnij się, czy w pliku konfiguracyjnym nie ma błędów.
* Zrestartuj serwer Nginx.
* Skontaktuj się z obsługą techniczną swojego hostingu.

7. Czy przekierowanie „www” na bez „www” ma wpływ na SEO?

* Prawidłowo skonfigurowane przekierowanie nie powinno negatywnie wpłynąć na pozycję w wyszukiwarce.

8. Czy powinienem przekierowywać z wersji bez „www” na „www”?

* Zazwyczaj zaleca się przekierowywanie z „www” na wersję bez „www”, gdyż jest to preferowany wariant.

9. Czy przekierowanie obciąża moją witrynę?

* Obciążenie jest minimalne, gdyż przekierowanie realizowane jest przez serwer Nginx.

10. Jak usunąć ustawione przekierowanie z „www” na bez „www”?

* Wystarczy usunąć lub zakomentować odpowiednią dyrektywę return z pliku konfiguracyjnego Nginx.


newsblog.pl