Ich habe die bestehenden Fragen durchgesehen, bin aber nicht auf etwas gestoßen, was für mich funktioniert.
Ich betreibe derzeit eine Site mit einem Secure SSL-Zertifikat. Es kann unter https://www.example.co.uk zugegriffen werden. Ein Problem besteht darin, dass die Website auch unter http://www.example.co.uk aufgerufen werden kann möchte, dass dies möglich ist. Ich brauche es, um von http zu https umzuleiten.
Ich habe dieses eine Codefragment in einer .htaccess-Datei gefunden.
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_Host} ^example.co.uk [NC]
RewriteRule ^(.*)$ https://example.co.uk/$1 [L,R=301]
Dies funktioniert problemlos, wenn der Benutzer beispiel.de in seine Adressleiste eingibt, aber ich muss auch eine bedingte Anweisung hinzufügen, damit der Benutzer 'www.example.co.uk' oder ' http: //www.example.co.uk '.
Ich habe versucht, wie [OR] zu verwenden, aber dies führt zu Serverfehlern.
Jede Hilfe und Anregung wird geschätzt.
Prost.
Versuche Folgendes:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
Sie können auch basierend auf der Portnummer umleiten, zum Beispiel:
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Dadurch werden alle an Port 80 empfangenen Anforderungen an HTTPS umgeleitet.
Fügen Sie den folgenden Code in der .htaccess-Datei hinzu.
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
change example.com mit Ihrer Website-Domain
URLs-Weiterleitungs-Tutorial finden Sie hier - Weiterleitung von nicht-www an www und HTTP an HTTPS mithilfe der .htaccess-Datei
Probieren Sie es aus, ich habe es benutzt und es funktioniert gut
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI}
Versuche dies:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI} [R,L]
Quelle: https://www.ndchost.com/wiki/Apache/redirect-http-to-https
(Ich habe so viele verschiedene Codeblöcke ausprobiert, dieser 3-Liner hat einwandfrei funktioniert)
Ich versuche den obigen Code, aber jeder Code funktioniert nicht für meine Website. Dann probiere ich diesen Code aus. Dieser Code läuft perfekt für meine Website. Sie können die folgende Regel in htaccess verwenden:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
//Redirect http to https
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_Host} ^(www\.)?example\.com
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
//Redirect non-www to www
RewriteCond %{HTTP_Host} ^example.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]
</IfModule>
Ändern Sie example.com mit Ihrem Domainnamen und entschuldigen Sie sich für mein schlechtes Englisch.
Für mich arbeiten NUR diese Variante:
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]
Danke https://www.reg.ru/support/hosting-i-servery/sajty-i-domeny/kak-dobavit-redirekt/redirekt-s-http-na-https (auf Russisch)
Wenn Sie HTTP zu HTTPS umleiten möchten und mit jeder URL www hinzufügen möchten, verwenden Sie den folgenden Befehl htaccess
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI} [R,L]
RewriteCond %{HTTP_Host} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_Host}/$1 [R=301,L]
es leitet zuerst HTTP an HTTPS um und dann an WWW.
# Switch rewrite engine off in case this was installed under HostPay.
RewriteEngine Off
SetEnv DEFAULT_PHP_VERSION 7
DirectoryIndex index.cgi index.php
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
# RewriteCond %{HTTP_Host} ^compasscommunity.co.uk\.com$ [NC]
# RewriteRule ^(.*)$ https://www.compasscommunity.co.uk/$1 [L,R=301]
Perfekter Code Zum HTML-Index wechseln:
RewriteEngine on
RewriteCond %{HTTP_Host} ^YourNameWebsite\.com$ [OR]
RewriteCond %{HTTP_Host} ^www\.YourNameWebsite\.com$
RewriteRule ^/?$ "https\:\/\/YourNameWebsite\.com\/index\.html" [R=301,L]
Oder
Perfekter Code Zum PHP - Index wechseln:
RewriteEngine on
RewriteCond %{HTTP_Host} ^YourNameWebsite\.com$ [OR]
RewriteCond %{HTTP_Host} ^www\.YourNameWebsite\.com$
RewriteRule ^/?$ "https\:\/\/YourNameWebsite\.com\/index\.php" [R=301,L]
Um http://example.com
oder http://www.example.com
zu https://www.example.com
auf einfache Weise umzuleiten, können Sie die folgende Regel in htaccess verwenden:
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond www.%{HTTP_Host} ^(?:www\.)?(www\..+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [NE,L,R]
[Geprüft]
% {REQUEST_SCHEME} Variable ist seit Apache 2.4 verfügbar. Diese Variable enthält den Wert des angeforderten Schemas (http oder https). In Apache 2.4 können Sie die folgende Regel verwenden:
RewriteEngine on
RewriteCond %{REQUEST_SCHEME} ^http$
RewriteCond %{HTTP_Host} ^(www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%{HTTP_Host}%{REQUEST_URI} [NE,L,R]
Es gibt bessere und sicherere Methoden, um sicherzustellen, dass der gesamte Datenverkehr über https
geht. B. zwei virtuelle Hosts einrichten und den gesamten Verkehr von Ihrer http
auf Ihren https
Host umleiten. Lesen Sie mehr dazu in diese Antwort hier auf security.stackexchange.com .
Mit dem Einrichten eines virtuellen Hosts für die Umleitung können Sie einen 301-Status senden (dauerhaft umleiten), sodass der Browser erkennt, dass alle folgenden Anforderungen an den https-Server gesendet werden müssen, an den er umgeleitet wurde. Daher werden nach der ersten Weiterleitungsantwort keine weiteren http-Anforderungen gestellt.
Sie sollten auch die angegebenen Antworten sorgfältig prüfen, da Sie bei falschen Umschreiberegeln möglicherweise die Abfrageparameter Ihrer eingehenden Anforderungen verlieren.
Da dies eines der Top-Ergebnisse bei der Suche ist, funktioniert die akzeptierte Lösung nicht, wenn Sie versuchen, http zur https-Umleitung in AWS Beanstalk hinzuzufügen.
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule ^.*$ https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]
Versuchen Sie das RewriteCond %{HTTP_Host} !^www. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_Host}/$1 [R=301,L]
Nichts davon funktionierte für mich außer diesem. Meine Website wurde in https://www.asmallorange.com gehostet.
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_Host}/$1 [R=301,L]