Leiten Sie nicht-www auf www und http auf https um, NUR für den Stammpfad

Leiten Sie nicht-www auf www und http auf https um, NUR für den Stammpfad

Es fällt mir schwer herauszufinden, wie ich eine Mod_rewrite-Regel für die folgenden Bedingungen richtig konfiguriere:

  • Umleitung von Nicht-www zu www UND von http zu https NUR für den Stammpfad: / d. h. example.com
  • Ignorieren Sie alles andere wie /test.html, d. h. example.com/test.html

Beachten Sie, dass ich die Regeln in Apache-Include-Dateien innerhalb von Verzeichnisregeln schreibe.

Folgendes verwende ich derzeit:

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Dadurch werden alle Nicht-www-Anfragen korrekt auf www umgeleitet, es werden aber auch HTTP-Anfragen zugelassen, die ich verhindern möchte, allerdings nur für /, d. h. example.com

Dann habe ich folgendes versucht:

RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^$ https://www.example.com [L,R=301]

Dies hat (anscheinend) funktioniert, aber es stellte sich heraus, dass es alle Websites von Drittanbietern zur Überwachung der Verfügbarkeit daran hinderte, HTTPS-Get-Anfragen auszugeben, obwohl es in einem normalen Browser einwandfrei funktionierte. Mir gehen also die Ideen aus.

Antwort1

Wie sich herausstellte, handelte es sich tatsächlich um einen Fall, in dem die Überwachungsseiten von Drittanbietern die Weiterleitungen nicht richtig befolgten, wie von @MrWhite vorgeschlagen. Ich habe das Problem gelöst, indem ich den Überwachungspfad bearbeitet habe, um direkt über das HTTPS-Protokoll zu prüfen und so Weiterleitungen zu vermeiden.

Die Umschreiberegel war schließlich doch korrekt und ich habe sie letztendlich nur für die Einbindung des Root-Pfads in Apache per Verzeichnisserver-Direktiven verwendet:

RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^$ https://www.example.com [L,R=301]

Übrigens, für diejenigen, die mit den htaccess/mod_rewrite-Regeln kämpfen, gibt es hier ein tolles Online-Tool, das mir beim Testen sehr geholfen hat:https://htaccess.madewithlove.be/

Vielen Dank an alle für Ihre Beiträge. Wir wissen das sehr zu schätzen.

verwandte Informationen