Umleitungscode für Nicht-www => www und gegenüber www => Nicht-www. Keine fest codierten Domänen und Schemata in der .htaccess-Datei. So bleiben die Ursprungsdomäne und die http / https-Version erhalten.
APACHE 2.4 UND NEUER
NON-WWW => WWW:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ %{REQUEST_SCHEME}://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
WWW => NICHT-WWW:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^ %{REQUEST_SCHEME}://%1%{REQUEST_URI} [R=301,L]
Hinweis: Funktioniert nicht mit Apache 2.2, wenn% {REQUEST_SCHEME} nicht verfügbar ist. Verwenden Sie zur Kompatibilität mit Apache 2.2 den folgenden Code oder ersetzen Sie% {REQUEST_SCHEME} durch festes http / https.
APACHE 2.2 UND NEUER
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]
... oder kürzere Version ...
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 => NICHT-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]
... kürzere Version nicht möglich, da% N nur ab der letzten RewriteCond verfügbar ist ...
.htaccess
basierte Lösung schlage ich eine Antwort vor, die auf die diametrale Frage gestellt wurde: stackoverflow.com/a/5262044/367456