Przekierowanie strony

Przekierowanie strony
FG
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
0

Cześć,
wrzuciłem na VPS-a stronę, która działa zarówno pod adresem adresstrony.pl jak również www.adresstrony.pl
Chciałbym aby użytkownicy którzy wchodzą na adresstrony.pl byli automatycznie przekierowywani na tą zaczynającą się od www
Różne wersję znalazłem w internecie tego jak to można zrobić ale nie znam nginx-a więc chciałbym jeszcze was podpytać.
Obecnie ustawienia w pliku /etc/nginx/sites-available/default wyglądają tak:

Kopiuj
server {

        listen 443 ssl default_server;
        ssl_certificate /etc/nginx/ssl/adresstrony.pl/server.crt.combined;
        ssl_certificate_key /etc/nginx/ssl/adresstrony.pl/server.key;
        ssl_client_certificate /etc/nginx/ssl/adresstrony.pl/server.cacert;
        ssl_verify_client optional;

        ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers         HIGH:!aNULL:!MD5;

        server_name adresstrony.pl www.adresstrony.pl;

        gzip on;

żeby to zrobić trzeba tworzyć dodatkowy plik w /etc/nginx/sites-available?

próbowałem w taki sposób ale nie zadziałało :/

Kopiuj
server_name adresstrony.com;
return 301 $scheme://www.adresstrony.com$request_uri;
Ktos
  • Rejestracja: dni
  • Ostatnio: dni
5

Musisz mieć dwa bloki server, jeden reagujący na www.adresstrony.pl, a drugi na adresstrony.pl, i na tym drugim zrobić przekierowanie. Coś w tym stylu:

Kopiuj
    server {
        server_name adresstrony.pl;
        return 301 $scheme://www.adresstrony.pl$request_uri;
    }


    server {
        server_name www.adresstrony.pl;

        # i tutaj cała reszta rzeczy
    }

Nie musisz tego robić w oddzielnym pliku, spokojnie można w jednym – ja na przykład grupuję tylko po głównych domenach, wszelkie przekierowania z www na bez i odwrotnie, czy z braku SSL na z mam w plikach przypisanych do konkretnych domen.

RT
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
3

To tak na przyszłość, gdyby ktoś szukał rozwiązania podobnego problemu, w zasadzie nie trzeba definiować dwóch bloków server {}

Kopiuj
server {
  listen 80;
  listen 443 ssl;
  
  server_name adresstrony.pl www.adresstrony.pl;

  if ($http_scheme == 'http') {
    return 301 https://$http_host$request_url;
  }

  # i tutaj cala reszta

Mogą być literówki. :-)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.