CDN, Cloudflare e htacess http to https

Ciao a tutti,
oggi vedremo come impostare un redirect via .htaccess
da http to https in caso di presenza di CDN come cloudflare.



Se dovete attivare un sertificato SSL ed avere quindi il sito su https,
avrete bisogno (laddove non vi siano CMS che già lo fanno) di impostare https come
primario rispetto ad http, o meglio, fare un redirect da http a https per evitare i contenuti duplicati lato SEO.

Quindi dovrete fare dei redirect 301, coem ad es:

 RewriteEngine On
 RewriteCond %{HTTPS} !=on
 RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

oppure

 RewriteCond %{SERVER_PORT} ^80$
 RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]


Nel caso in cui invece siate su CDN (ad es. cloudflare), va impostato uin accorgimento in più

Noi abbiamo testato questo codice ed è otttimamente funzionanete:



##################
# Cloudflare https
##################
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

ve ne sono poi anche altri indicato dallo stesso cloudflare:

https://support.cloudflare.com/hc/en-us/articles/200170536-How-do-I-redirect-all-visitors-to-HTTPS-SSL-



To redirect a user from HTTP to HTTPS, you can set the following in your Apache configuration or .htaccess:
  RewriteCond %{HTTP:CF-Visitor} '"scheme":"http"'
  RewriteRule ^(.*)$ https://www.domain.com/$1 [L]
Similarly, to require all traffic go over HTTPS on CloudFlare, you can use the following:
  RewriteCond %{HTTP:CF-Visitor} !'"scheme":"http"'
  RewriteRule ^(.*)$ https://www.domain.com/$1 [L]


Nella stessa pagina è spiegato anche come impostarelo lato server (nginx).