Hai problemi con i doppi reindirizzamenti 301 sul tuo dominio con WWW? Alcune pagine non vengono reindirizzate da HTTP a HTTPS? In questo articolo ti darò un rapido consiglio su come risolvere questo problema.
Questa funzione è la soluzione a diversi problemi come l'assenza di reindirizzamento, accesso al sito dalla versione http, errori di reindirizzamenti multipli e molti altri.
Doppio reindirizzamento 301 su [http://www.]
Oggi ho controllato il SSL del mio sito su httpstatus.io e mi sono trovato di fronte a due redirect 301 nella mia versione con www e senza https del sito. Può sembrare qualcosa di insignificante, ma è estremamente importante per il SEO del tuo sito.
Come puoi vedere nell'immagine qui sotto, l'URL del sito con HTTP://WWW ha due reindirizzamenti 301, probabilmente uno per la versione HTTPS e un altro per la versione non WWW del sito.
Per risolvere questo problema è piuttosto semplice. Uso Cloudflare, quindi ho accesso al mio pannello e dominio su CloudFlare e sono andato alla scheda Page Rules.
Lì ho creato un reindirizzamento unico dalla versione www direttamente alla versione https senza www. Questa regola oltre a risolvere il problema elimina nella maggior parte dei casi la necessità di utilizzare un plugin o una regola di reindirizzamento sul server nginx o nel .htaccess di apache.
Accedendo a Page Rules, è sufficiente creare una nuova regola per reindirizzare www.meusite.com/* a https://meusite.com/$1 utilizzando la regola di reindirizzamento 301.
I valori [*] e [$1] sono importanti perché identificano quale pagina l'utente sta accedendo e reindirizzano direttamente alla versione https di quella pagina invece di reindirizzare alla homepage.
Guarda come ho impostato il mio dominio di seguito. Fai lo stesso, quindi fai clic su Salva e svuota la cache di CloudFlare. Quindi il doppio reindirizzamento non esisterà più, lasciando solo un 301.
Ti consigliamo di leggere anche la nostra Guida su SEO e Strumenti.
Reindirizzamento tramite file .HTACCESS
La stessa regola di reindirizzamento può essere applicata direttamente dal server se non utilizzi Cloudflare. Anche se consigliamo vivamente di utilizzare un CDN e di farlo su di esso.
La regola da applicare nel file .HTACCESS sarà di seguito. Ricorda, fallo solo se non stai usando Cloudflare.
<IfModule mod_rewrite.c
>
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.seusite\.com [NC]
RewriteRule (.*) https://seusite.com/$1 [L,R=301]
</IfModule
>
Reindirizzamento WWW in Nginx
Se il tuo server è puramente Nginx come il mio, è senza dubbio molto più semplice per te usare CloudFlare e il primo tutorial. Nel caso in cui tu sia ancora testardo, ti lascio una configurazione per Nginx, ma non passerò il mio tempo a spiegarlo, dato che non sono un professionista di Nginx Config:
#=========================#
# domain settings #
#=========================#
# Catch http://domain, and http://www.domain
server {
listen 80;
server_name www.domain domain;
# Redirect to https://domain
return 301 https://domain$request_uri;
}
# Catch https://www.domain
server {
listen 443;
server_name www.domain;
# Redirect to https://domain
return 301 https://domain$request_uri;
}
# Catch https://domain
server {
listen 443;
server_name domain;
root /usr/share/nginx/domain;
index index.html index.htm;
ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
ssl_prefer_server_ciphers on;
location / {
try_files $uri $uri/ =404;
}
}
Spero che i suggerimenti di questo articolo risolvano il tuo problema con il doppio reindirizzamento o l'assenza di reindirizzamento WWW. Se ti è piaciuto, condividilo con gli amici, non lasciare che il loro sito abbia un doppio reindirizzamento e prejudichi il SEO loro.