Heim >Backend-Entwicklung >PHP-Tutorial >Wie erzwinge ich SSL/HTTPS mit .htaccess und mod_rewrite?

Wie erzwinge ich SSL/HTTPS mit .htaccess und mod_rewrite?

DDD
DDDOriginal
2024-12-30 12:24:17215Durchsuche

How to Enforce SSL/HTTPS Using .htaccess and mod_rewrite?

SSL/HTTPS mit .htaccess und mod_rewrite erzwingen

Um SSL/HTTPS mit .htaccess und mod_rewrite durchzusetzen, stehen mehrere Ansätze zur Verfügung.

Verwenden mod_ssl

Apaches mod_ssl stellt die SSLRequireSSL-Direktive bereit, die den Zugriff einschränkt, sofern HTTPS nicht aktiviert ist. Durch das Hinzufügen dieser Anweisung zum SSL-fähigen virtuellen Host oder den SSL-fähigen Verzeichnissen können Sie verhindern, dass vertrauliche Daten offengelegt werden. Diese Methode leitet jedoch nicht zu HTTPS um.

Verwenden von mod_rewrite

Um zu HTTPS umzuleiten, verwenden Sie mod_rewrite in Ihrer .htaccess-Datei:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Alternative Ansätze

Zusätzliche Optionen für Zur Durchsetzung von HTTPS gehören:

  • Methoden beschrieben in „HTTP-HTTPS (SSL Redirect) mit RewriteRule“: http://www.askapache.com/htaccess/http-https-rewriterule-redirect.html

PHP-basiert Lösung

In Fällen, in denen .htaccess deaktiviert ist, kann PHP verwendet werden:

if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] !== 'on') {
    if(!headers_sent()) {
        header("Status: 301 Moved Permanently");
        header(sprintf(
            'Location: https://%s%s',
            $_SERVER['HTTP_HOST'],
            $_SERVER['REQUEST_URI']
        ));
        exit();
    }
}

Das obige ist der detaillierte Inhalt vonWie erzwinge ich SSL/HTTPS mit .htaccess und mod_rewrite?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn