Código de redireccionamiento para ambos no www => www y opuesto www => no www. No hay dominios y esquemas de codificación en el archivo .htaccess. Por lo tanto, el dominio de origen y la versión http / https se conservarán.
APACHE 2.4 Y MÁS NUEVOS
NO WWW => WWW:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ %{REQUEST_SCHEME}://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
WWW => NO WWW:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^ %{REQUEST_SCHEME}://%1%{REQUEST_URI} [R=301,L]
Nota: no funciona en Apache 2.2 donde% {REQUEST_SCHEME} no está disponible. Para compatibilidad con Apache 2.2, use el código a continuación o reemplace% {REQUEST_SCHEME} con http / https fijo.
APACHE 2.2 Y MÁS NUEVOS
NO 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 una versión más 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 => NO 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]
... la versión más corta no es posible porque% N está disponible solo desde el último RewriteCond ...
.htaccess
solución basada, sugiero una respuesta que se ha planteado en la pregunta diametral: stackoverflow.com/a/5262044/367456