Wie kann ich alle Anfragen in einem Sprung an https und Nicht-www umleiten?
 Dec 18 2019
Ich möchte alle Anfragen in einem Sprung für Haupt- / Homepage und andere Unterseiten an https und Nicht-www umleiten. Ich benutze den folgenden htaccess. Quelle
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^mytesting\.com$ [OR] RewriteCond %{HTTP_HOST} ^www\.mytesting\.com$
RewriteRule .* https://www.mytesting.com%{REQUEST_URI} [R=301,L]
Aber ich habe die folgende Umleitung erhalten
 
                Ich will so:
http://mytesting.com          > https://mytesting.com
http://www.mytesting.com      > https://mytesting.com
http://mytesting.com/faq      > https://mytesting.com/faq
https://mytesting.com         > https://mytesting.com
http://www.mytesting.com      > https://mytesting.com
http://www.mytesting.com/faq  > https://mytesting.com/faq
https://mytesting.com/faq     > https://mytesting.com/faq
Antworten
2  anubhava Dec 18 2019 at 21:41
Sie können diese Regel für beide Weiterleitungen in einer Regel verwenden:
RewriteCond %{HTTP_HOST} ^www\. [NC,OR]
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L,NE]
Hier ist die Erklärung dieser Regel:
- RewriteCond %{HTTP_HOST} ^www\. [NC,OR]: wenn- HOST_NAMEbeginnt mit- www.
- [NC,OR]: Fallübereinstimmung und- ORnächste Bedingung ignorieren
- RewriteCond %{HTTPS} !on:- HTTPSist nicht eingeschaltet
- RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]: Diese Bedingung stimmt immer überein, da- www.hier eine optionale Übereinstimmung vorliegt . Es wird verwendet, um Teilzeichenfolgen von zu erfassen,- HTTP_HOSTohne- www.mit dem- (.+)Muster in Erfassungsgruppe 1 zu beginnen (auf das später zurück verwiesen wird- %1). Beachten Sie, dass dies- (?:..)eine nicht erfassende Gruppe ist.
- RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L,NE]:- ^wird immer übereinstimmen. Diese Regel wird- https://%1%{REQUEST_URI}mit- R=301Code umgeleitet . Woher- %1stammt die Rückreferenz der Erfassungsgruppe Nr. 1- RewriteCond, wie oben erwähnt?