Dokumentacija

En naslov, z www ali brez

En naslov, z www ali brez

example.com in www.example.com sta dva različna naslova. Ljudje vtipkajo oba in druge strani povezujejo na oba. Če oba prikažeta stran, Google vidi dve kopiji vsake strani in med njiju razdeli povezave in uvrstitev, analitika šteje dve imeni gostitelja, obiskovalec, prijavljen na enem, pa je na drugem odjavljen.

Enega izberite za glavni naslov, drugi pa naj odgovori s trajno preusmeritvijo 301 nanj. Katerega izberete, za uvrstitev ni pomembno; pomembno je, da ste dosledni. Kontrolni seznam strani preveri različico, ki je ne uporabljate.

Kaj pričakuje kontrolni seznam

Druga različica Rezultat
preusmeri na glavni naslov OK
prikaže stran brez preusmeritve opozorilo: dve kopiji strani
ima napako certifikata napaka: obiskovalci, ki jo vtipkajo, namesto vaše strani vidijo varnostno opozorilo
ne obstaja (brez zapisa DNS) informacija: v redu, dokler je nihče ne vtipka ali nanjo ne povezuje

Primer s certifikatom ujame veliko strani: preusmeritev je nastavljena, certifikat pa pokriva samo example.com, zato https://www.example.com pade, še preden lahko preusmeritev steče. Tudi različica, ki preusmerja, potrebuje veljaven certifikat.

Preverite sami

Namesto example.com vpišite svojo stran. Če je vaš glavni naslov www.example.com, namesto tega preverite example.com:

dig +short www.example.com
curl -sI https://www.example.com/some/page | grep -iE '^(HTTP|location)'
curl -sI http://www.example.com/some/page | grep -iE '^(HTTP|location)'

Popravljeno je videti takole, v enem skoku in z ohranjeno potjo:

HTTP/2 301
location: https://example.com/some/page

Če curl namesto tega izpiše napako, kot je SSL: no alternative certificate subject name matches target host name, certifikat te različice ne pokriva. Če dig ne izpiše ničesar, različica nima zapisa DNS.

Kako popraviti

Popravek ima tri dele, v tem vrstnem redu: zapis DNS za drugo različico, certifikat, ki pokriva obe imeni, in preusmeritev. Izberite tisto, do česar imate dostop.

Ponudnik DNS

Druga različica potrebuje zapis DNS, ki kaže na isti strežnik (ali CDN) kot glavni naslov. Najpogosteje je to www:

Ime Tip Vrednost
www CNAME example.com.

Če vaš ponudnik tam ne dovoli zapisa CNAME, uporabite zapis A z istim naslovom IP kot glavna domena (na primer 203.0.113.10) in še zapis AAAA, če ga ima glavna domena.

Če je glavni naslov www.example.com in gola domena example.com nima zapisa, dodajte zapis A za @ z naslovom IP strežnika. CNAME na goli domeni ni dovoljen, razen če ponudnik ponuja ALIAS, ANAME ali CNAME flattening.

Novi zapisi običajno delujejo v nekaj minutah; spremenjen obstoječi zapis lahko potrebuje toliko časa, kolikor znaša njegov TTL.

WordPress

WordPress že sam preusmeri na gostitelja iz Settings → General → Site Address (URL) (t. i. canonical redirect), če zahtevek za drugo različico pride do iste namestitve WordPressa.

  1. WordPress Address (URL) in Site Address (URL) nastavite na isti glavni naslov, na primer https://example.com.
  2. Preverite, da ima druga različica zapis DNS in certifikat (glejte zavihek za DNS in zavihek za vaše gostovanje). Brez certifikata se brskalnik ustavi, še preden lahko WordPress preusmeri.
  3. Počistite predpomnilnik strani.

Če druga različica prikaže drugo stran ali privzeto stran gostitelja, ne kaže na vaš WordPress. To popravite v nadzorni plošči gostovanja.

cPanel

  1. Certifikat: v Security → SSL/TLS Status preverite, da sta example.com in www.example.com navedena kot pokrita. AutoSSL vključi www, ko njegov zapis DNS kaže na strežnik; po dodanem zapisu kliknite Run AutoSSL.
  2. Preusmeritev: to dodajte na vrh datoteke .htaccess v korenski mapi strani (File Manager, z vklopljenim Show Hidden Files). Preusmeri www na golo domeno in http:// na https:// v enem skoku:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]

Za obratno smer (gola domena na www) drugi pogoj spremenite v RewriteCond %{HTTP_HOST} !^www\. [NC], cilj pa v https://www.example.com%{REQUEST_URI}.

cPanel ima tudi Domains → Redirects, vendar se z njegovimi možnostmi za www hitro nastavi zanka. Pravilo v .htaccess je bolj predvidljivo.

Plesk

  1. Certifikat: v Websites & Domains → example.com → SSL/TLS Certificates ob izdaji ali obnovi certifikata Let's Encrypt vključite poddomeno www.
  2. Preusmeritev: odprite Websites & Domains → example.com → Hosting & DNS → Hosting (v starejših različicah Hosting Settings). Pod Preferred domain izberite example.com ali www.example.com. Plesk nato z druge pošilja trajno preusmeritev 301.
  3. Kliknite OK.

nginx

V datoteki vaše strani (/etc/nginx/sites-available/example.com na Debianu in Ubuntuju, /etc/nginx/conf.d/example.com.conf na Rocky, Alma in CentOS) drugi različici dajte svoj blok server za HTTPS, ki samo preusmerja:

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

    ssl_certificate     /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    return 301 https://example.com$request_uri;
}

server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;

    return 301 https://example.com$request_uri;
}

Glavni blok server obdrži samo server_name example.com;. Certifikat mora pokrivati obe imeni; s Certbotom:

sudo certbot certonly --nginx -d example.com -d www.example.com
sudo nginx -t && sudo systemctl reload nginx

Apache in LiteSpeed

Z dostopom do strežnika (Apache). Dodajte navideznega gostitelja za drugo različico, ki samo preusmerja (v /etc/apache2/sites-available/ na Debianu in Ubuntuju, v /etc/httpd/conf.d/ na Rocky, Alma in CentOS):

<VirtualHost *:443>
    ServerName www.example.com
    SSLEngine on
    SSLCertificateFile    /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
    Redirect permanent / https://example.com/
</VirtualHost>

Iz ServerAlias glavnega navideznega gostitelja odstranite www.example.com, pridobite certifikat za obe imeni (sudo certbot --apache -d example.com -d www.example.com) in znova naložite:

sudo apachectl configtest && sudo systemctl reload apache2

(Na Rocky, Alma in CentOS httpd namesto apache2.)

Brez dostopa do strežnika (deljeno gostovanje, LiteSpeed). Uporabite pravilo za .htaccess iz zavihka cPanel; deluje pri vsakem gostitelju, ki bere .htaccess.

Cloudflare

  1. V DNS → Records preverite, da druga različica obstaja in je Proxied (oranžen oblak). Pravila za preusmeritev delujejo samo na prometu skozi proxy. Cloudflarov robni certifikat samodejno pokrije example.com in www.example.com.
  2. Pojdite na Rules → Overview, kliknite Create rule in izberite Redirect Rule (pri nekaterih računih: Rules → Redirect Rules). Začnite s predlogo Redirect from WWW to root ali ga nastavite sami:
    • When incoming requests match: Hostname equals www.example.com
    • Then: Dynamic, izraz concat("https://example.com", http.request.uri.path)
    • Status code: 301, in vklopite Preserve query string
  3. Deploy.

Shopify

Shopify poveže example.com in www.example.com in vse preusmeri na primarno domeno. V Settings → Domains preverite, da sta obe navedeni kot povezani in da je primarna tista, ki jo želite (sicer Change primary domain). Shopify izda certifikate, ko zapisi DNS kažejo na Shopify.

Druge gostovane platforme

Tudi Wix, Squarespace in Webflow vsako povezano domeno preusmerijo na tisto, ki jo v nastavitvah domen določite kot primarno ali privzeto. Če kontrolni seznam javi napako certifikata ali dve kopiji, druge različice običajno ni na seznamu domen platforme ali pa njen zapis DNS še vedno kaže drugam.

Potrdite popravek

Znova poženite ukaze iz razdelka Preverite sami, nato v PulseKeeperju odprite tarčo in na zavihku Kontrolni seznam kliknite Preveri zdaj. Če kontrolni seznam pokaže dodaten skok, v vodiču Preusmerite HTTP na HTTPS preberite, kako do glavnega naslova pridete v enem koraku.