Drupal .htaccess Rewrite Regeln für https und www

In der Drupal .htaccess Datei finden sich beispielhafte Regeln zum Erzwingen von www oder zum erzwungenen Weglassen von www in der Domain. Auf die Weise wird sichergestellt, dass unabhängig von der Schreibweise des Aufrufers immer dieselbe URL-Struktur vorgefunden wird. Auch Regeln zur Arbeit mit https finden sich dort. Was jedoch schmerzlich vermisst wird, ist eine Regel, die sowohl WWW als auch HTTPS erzwingt.

Hier ein Beispiel wie sich das lösen lässt:

  # steht meistens bereits irgendwo vorher im Code und muss nicht erneut eingegeben werden
  RewriteEngine on

  # diesel Regeln kommen unterhalb des RewriteEngine on Befehls zusätzlich hinzu
  RewriteCond %{HTTPS} !=on
  RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  RewriteCond %{HTTP_HOST} .
  RewriteCond %{HTTP_HOST} !^www\. [NC]
  RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Wer sich nicht sicher ist, sollte sicherheitshalber erstmal statt 301 die 302 nehmen, damit der Redirect als temporär und nicht permanent markiert wird. Permantene Redirects sind nur schwierig wieder zu entfernen (idR durch Browsercache löschen, was man bei anderen Benutzern natürlich nicht erzwingen kann).