Codice di reindirizzamento per non-www => www e opposto www => non-www. Nessun dominio e schema hardcoding nel file .htaccess. Quindi il dominio di origine e la versione http / https verranno conservati.
APACHE 2.4 E NOVITÀ
NON WWW => WWW:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ %{REQUEST_SCHEME}://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
WWW => NON-WWW:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^ %{REQUEST_SCHEME}://%1%{REQUEST_URI} [R=301,L]
Nota: non funziona su Apache 2.2 dove% {REQUEST_SCHEME} non è disponibile. Per compatibilità con Apache 2.2, utilizzare il codice seguente o sostituire% {REQUEST_SCHEME} con http / https fisso.
APACHE 2.2 E NOVITÀ
NON WWW => WWW:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
... o versione più corta ...
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|offs
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
WWW => NON-WWW:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
... versione più breve non possibile perché% N è disponibile solo dall'ultimo RewriteCond ...
.htaccess
soluzione basata suggerisco una risposta che è stata posta sulla questione diametrale: stackoverflow.com/a/5262044/367456