Hur man omdirigerar NON-WWW & WWW med Nginx

När du har en webbplats eller applikation igång med Nginx är det önskvärt att tillåta besökare att komma åt domänen med hjälp av www- och icke-www-versioner av ditt domännamn. Men i dagens tidsålder av sökmotoroptimering och användare som vill ha en snabb och enkel surfupplevelse, kan två URL-länkar påverka den övergripande upplevelsen av din webbplats negativt. Detta betyder dock inte att du ska överge ett av dina besökares sätt att komma åt sidan. Istället kan en enkel omdirigering förbättra din webbplats besökarupplevelse, öka igenkänningen av bakåtlänkar snabbare och förbättra ditt SEO-betyg.

I guiden nedan kommer du att lära dig hur du omdirigerar en www-URL till icke-www, t.ex (www.example.com) till (example.com) och vice versa med en omdirigering kallas a Permanent omdirigering, eller "301 omdirigeringar", Detta kan göras på alla operativsystem som använder Nginx, exemplen är endast för serverblocken. De förklarar inte hur man ställer in dessa eller installerar Nginx.

Förutsättningar

  • Rekommenderat OS: Alla Linux-system som kan köra Nginx
  • Användarkonto: Ett användarkonto med sudo- eller root-åtkomst.
  • Rekommenderade paket: curl

Installera curl DNF Method distros:

sudo dnf install curl

Installera curl APT Method distros:

sudo apt install curl

Installera curl Pacman Method Distros:

sudo pacman -S curl

Installera curl Zypper Method Distros:

sudo zypper install curl

Alternativ 1: Omdirigera NON-WWW till WWW

I det första exemplet kommer du att lägga till koden nedan ovanför din befintliga (www) servernamnsblock för att omdirigera alla besökare som träffar din icke-www-URL endast till en www-URL.

HTTP (80):

server {
    server_name    .example.com;
    listen                 80;
    listen                 [::]:80;
    return 301         https://www.example.com$request_uri;
}

HTTPS (443)

server {
    listen                         443 ssl http2;
    listen                          [::]:443 ssl http2;
    server_name             .example.com;

    # SSL
    ssl_certificate                 /path/to/cert.pem;
    ssl_certificate_key         /path/to/key.pem;
    ssl_trusted_certificate    /path/to/cert.crt;
    return                             301 https://www.example.com$request_uri;
}

Obs, se till ($request_uri) tas inte bort, eftersom detta kan orsaka problem med att alla länkar som inte är www bara omdirigerar tillbaka till din startsida.

Ett exempel på detta är https://example.com/random-topic. Om ($request_uri) inte läggs till kommer den att avleda till www.example.com istället för https://www.example.com/random-topic, vilket kommer att frustrera dina besökare och skada din sökmotorrankning, med sökrobotar som blir förvirrade.

Alternativ 2: Omdirigera WWW till ICKE-WWW

I det andra exemplet kommer du att lägga till koden nedan ovanför din befintliga (icke-www) servernamnsblock för att omdirigera alla besökare som träffar din www-URL endast till en icke-www-URL.

HTTP (80)

server {
    server_name     www.example.com;
    listen                 80;
    listen                 [::]:80;
    return 301         https://example.com$request_uri;
}

HTTPS (443)

server {
    listen                  443 ssl http2;
    listen                  [::]:443 ssl http2;
    server_name     www.example.com;

    # SSL
    ssl_certificate                /path/to/cert.pem;
    ssl_certificate_key        /path/to/key.pem;
    ssl_trusted_certificate   /path/to/cert.crt;
    return                             301 https://example.com$request_uri;
}

Som nämnts i slutet av alternativ 1, se till ($request_uri) tas inte bort. Detta är en väsentlig del.

Observera, placera certifikaten och nyckeln för HTTPS-omdirigeringar eller problem.

Bekräfta ändringar

Innan du startar om din Nginx-instans är det bäst att göra en torrkörning för att säkerställa att inga fel i det du just lagt till. För att testa, kör följande kommando:

sudo nginx -t

Om allt är ok, bör du få följande utdata:

nginx: the configuration file /etc/nginx/my-server.conf syntax is ok
nginx: configuration file /etc/nginx/my-server.conf test is successful

Fortsätt med att starta om din Nginx-tjänst för att göra ändringarna live:

sudo systemctl restart nginx

Det är allt! Du har slutfört omdirigeringen. För att testa om omdirigeringen fungerar, utför följande:

icke-www till www omdirigeringstest

curl -I https://example.com

Exempel utmatning:

HTTP/1.1 301 Moved Permanently
 Server: nginx/1.21.1 (Ubuntu)
 Date: Mon, 14 July 2021 18:20:19 GMT
 Content-Type: text/html
 Content-Length: 193
 Connection: keep-alive
 Location: http://www.example.com/

www till icke-www omdirigeringstest

curl -I https://www.example.com

Exempel utmatning:

HTTP/1.1 301 Moved Permanently
 Server: nginx/1.21.1 (Ubuntu)
 Date: Mon, 14 July 2021 18:21:33 GMT
 Content-Type: text/html
 Content-Length: 193
 Connection: keep-alive
 Location: http://example.com/

Kommentarer och slutsats

I guiden har du lärt dig hur du enkelt och snabbt lägger till både www- och icke-www-riktningarna till din Nginxs serverwebbplats, vilket kommer att förbättra den övergripande upplevelsen för dina besökare genom att bara besöka en URL istället för två.

Som förklaras i början av guiden blir SEO mer avgörande. Sökmotorer markerar ständigt webbplatser; att ha två webbadresser med potentiellt duplicerat innehåll är en stor röd markering mot din webbplats. Att lägga till denna omdirigering kan snabbt öka din ranking och dina bakåtlänkar.


Inte vad du letade efter? Försök att söka efter ytterligare tutorials.

Lämna en kommentar