Ich habe eine alte URL ( www1.test.net
) und möchte sie weiterleiten, bis https://www1.test.net
ich unser SSL-Zertifikat auf meiner Site implementiert und installiert habe.
Dies ist meine alte Datei .htaccess
:
RewriteEngine On
RewriteRule !\.(js|gif|jpg|png|css|txt)$ public/index.php [L]
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ public/$1 [L]
Wie kann ich meine .htaccess
Datei so konfigurieren , dass die URL automatisch umgeleitet wird https
?
Vielen Dank!
RewriteCond %{REQUEST_FILENAME} !-f
gefolgt von Ihre Weiterleitung.Antworten:
Update 2016
Da diese Antwort einige Aufmerksamkeit erhält, möchte ich auf eine empfohlene Methode für die Verwendung von virtuellen Hosts hinweisen: Apache: SSL umleiten
Alte Antwort, Hacky-Sache , da Ihr SSL-Port nicht auf 80 eingestellt ist, wird dies funktionieren:
Beachten Sie, dass dies Ihre erste Umschreiberegel sein sollte.
Bearbeiten: Dieser Code führt Folgendes aus. Die RewriteCond (ition) prüft, ob der ServerPort der Anforderung 80 ist (dies ist der Standard-http-Port, wenn Sie einen anderen Port angeben, müssten Sie die Bedingung daran anpassen). In diesem Fall passen wir die gesamte URL an
(.*)
und leiten sie an eine https-URL weiter.%{SERVER_NAME}
kann durch eine bestimmte URL ersetzt werden, aber auf diese Weise müssen Sie den Code für andere Projekte nicht ändern.%{REQUEST_URI}
ist der Teil der URL nach der TLD (Top-Level-Domain), sodass Sie dorthin weitergeleitet werden, wo Sie herkommen, jedoch als https.quelle
[R=301]
stattdessen.Ich verwende Folgendes, um alle Seiten meiner Domain erfolgreich von http nach https umzuleiten:
Beachten Sie, dass dies mit der
301 'permanently moved'
Weiterleitung umgeleitet wird, wodurch Sie Ihre SEO-Rankings übertragen können.Umleiten mit der
302 'temporarily moved'
Änderung[R=302,L]
quelle
RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
Dies ist das Beste für www und für https, Proxy- und nicht Proxy-Benutzer.
quelle
%{HTTPS} off
nicht genug istIch erzwinge das https mit folgendem Code:
quelle
In Fällen, in denen die HTTPS / SSL-Verbindung am Load Balancer beendet wird und der gesamte Datenverkehr an Instanzen auf Port 80 gesendet wird, leitet die folgende Regel nicht sicheren Datenverkehr um.
Stellen Sie sicher, dass das
mod_rewrite
Modul geladen ist.quelle
Auf der Suche nach dem besten Weg zur Weiterleitung habe ich Folgendes gefunden (von html5boilerplate):
Vielleicht hilft es 2017 jemandem! :) :)
quelle
# <IfModule mod_headers.c>
und# </IfModule>
Zeilen?Fügen Sie diesen Code in Ihre .htaccess-Datei ein. Und es sollte funktionieren
quelle
Fügen Sie diesen Code am Ende Ihrer .htaccess-Datei hinzu
quelle
RewriteEngine on
, funktioniert es.Fügen Sie Folgendes oben im .htaccess hinzu
quelle
Ich hatte auch ein Problem mit der Umleitung. Ich habe alles versucht, was auf Stackoverflow vorgeschlagen wurde. Der einzige Fall, den ich selbst gefunden habe, ist:
quelle
Dadurch wird sichergestellt, dass Weiterleitungen für alle Kombinationen intransparenter Proxys funktionieren.
Dies schließt den Webserver des Fallclients <http> Proxy <https> ein .
quelle
Erzwingen von HTTPS mit der
.htaccess
Datei==> Leiten Sie den gesamten Webverkehr um: -
Fügen Sie die folgenden Codezeilen in die
.htaccess
Datei im Stammordner Ihrer Website ein , um den gesamten Webverkehr zur Verwendung von HTTPS zu zwingen .==> Nur angegebene Domäne umleiten: -
Verwenden Sie die folgenden Codezeilen in der
.htaccess
Datei im Stammordner Ihrer Website, um eine bestimmte Domain zur Verwendung von HTTPS zu zwingen :Wenn dies nicht funktioniert, entfernen Sie die ersten beiden Zeilen.
==> Angegebenen Ordner umleiten: -
Wenn Sie SSL für einen bestimmten Ordner erzwingen möchten, fügen Sie den folgenden Code in eine
.htaccess
Datei ein, die sich in diesem bestimmten Ordner befindet:quelle
Ersetzen Sie Ihre Domain durch
domainname.com
, es funktioniert mit mir.quelle