WordPress leitet alle HTTPS auf HTTP um

Lesezeit: 5 Minuten

WordPress leitet alle HTTPS auf HTTP um
Benutzer1251762

Wir haben eine WordPress-Site und hatten früher ein SSL-Zertifikat. Früher war die Seite ausschließlich HTTPS, und jetzt brauchen wir das SSL nicht mehr, also lassen wir es ablaufen.

Das haben wir bereits geändert Website-Adresse und WordPress-Adresse im Adminbereich zu sein http://example.com.

Wir haben mehrere Links in freier Wildbahn, die auf uns zurückverweisen https:// und ob der Benutzer mit auf die Website zugreift https:// die Website bricht zusammen oder der Benutzer erhält eine Warnmeldung in seinem Browser.

Unterm Strich müssen wir alle umleiten https:// Verkehr zu http://.

Ich habe ein paar Plugins ausprobiert (kein Glück):

und sogar geändert .htaccess Datei (immer noch kein Glück)

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{SERVER_PORT} ^443$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Ich bin mir nicht sicher, was ich sonst noch tun muss.

1646632147 352 WordPress leitet alle HTTPS auf HTTP um
gezeichnet010

Das Problem hier liegt in der Tatsache, dass der Browser, bevor Apache oder WordPress ins Spiel kommen, eine Verbindung mit dem Server über HTTPS herstellen muss, indem er eine Verbindung herstellt, einen SSL-Handshake durchführt, Zertifikate austauscht (und verifiziert) und erst danach fertig ist, wird der Browser die HTTP-Anforderung ausgeben, die dem Server mitteilt, nach welchen Ressourcen er sucht.

Aus diesem Grund wird kein .htaccess- oder WordPress-Plugin in der Lage sein, den Benutzer umzuleiten, ohne dass er eine sichere Sitzung aufbaut.

Wenn Sie ein selbstsigniertes Zertifikat installieren, wird dem Benutzer natürlich eine Warnung angezeigt, bevor dies geschieht. Wenn Sie zufällig (was nicht die Besetzung zu sein scheint) Strict Transport Security-Header über https gesendet haben, erlauben die Browser früherer Besucher ihnen möglicherweise nicht einmal, eine Verbindung über HTTP herzustellen.

Wenn Sie HTTPS-Verkehr auf HTTP umleiten möchten, müssen Sie leider ein gültiges Zertifikat erwerben und mit .htaccess oder einem PHP-Code umleiten, wie Sie es tun.

Wenn Sie nach Zertifikaten suchen, denen die meisten Browser vertrauen, ohne zu bezahlen, können Sie ein kostenloses Zertifikat von erhalten Lassen Sie uns verschlüsseln.

Fazit: Wenn Sie HTTPS-Verkehr ohne Warnmeldungen nahtlos auf HTTP umleiten möchten, müssen Sie ein weiteres SSL-Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle installieren.

  • danke für die richtige Antwort, ich habe mein Ding ausprobiert und meinen Hosting-Provider kontaktiert, aber endlich verstehe ich, dass es keinen richtigen und direkten Weg gibt, https ohne SSL auf http umzuleiten.

    – heySushil

    2. August 2020 um 10:08 Uhr

Hier ist eine alternative Lösung, die Sie verwenden können, wenn Sie nicht bearbeiten möchten .htaccess:

add_action( 'template_redirect', 'nonhttps_template_redirect', 1 );

function nonhttps_template_redirect() {

    if ( is_ssl() && !is_admin() ) {

        if ( 0 === strpos( $_SERVER['REQUEST_URI'], 'http' ) ) {

            wp_redirect( preg_replace( '|^https://|', 'http://', $_SERVER['REQUEST_URI'] ), 301 );

            exit();

        } else {

            wp_redirect( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 301 );

            exit();

        }

    }

}

Sie können dies am Ende Ihres Themas platzieren functions.php

  • Wie hilft das, wie bereits erwähnt, wenn das SSL-Zertifikat nicht existiert oder ungültig ist („wir lassen es verfallen“)? (Siehe Antwort von @drew010)

    – Herr weiß

    31. August 2017 um 7:45 Uhr


  • @MrWhite siehe meine Antwort auf derselben Seite hier: stackoverflow.com/a/47399052/6647188

    – Kyle Vasella

    20. November 2017 um 18:50 Uhr

  • Sie sollten globale Variablen wie $_SERVER maskieren[‘REQUEST_URI’] Verwenden von esc_url, um jede Art von Exploits zu verhindern.

    – WPExplorer

    6. Januar 2018 um 1:47 Uhr

WordPress leitet alle HTTPS auf HTTP um
Kyle Vasella

Erweitern Sie die Antwort von @ HigherCoding und den Kommentar von @ MrWhite , um eine PHP-Funktion zu erhalten, die dies auf einer Site tut, auf der die https Port existiert, aber die SSL-Zertifizierung ist ungültig, abgelaufen oder nicht vorhanden:

function shapeSpace_check_https() { 
if ((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') || $_SERVER['SERVER_PORT'] == 443) { 
    return true; 
}
    return false;
}


function bhww_ssl_template_redirect() {
if ( shapeSpace_check_https() ) {
    if ( 0 === strpos( $_SERVER['REQUEST_URI'], 'http' ) ) {    
        wp_redirect( preg_replace( '|^(https://)|', 'http://', $_SERVER['REQUEST_URI'] ), 301 );
        exit(); 
    } else {
        wp_redirect( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 301 );
        exit();     
    }
}   
}

add_action( 'template_redirect', 'bhww_ssl_template_redirect');

Dies funktionierte auf meiner Website in functions.php und war eine Kombination dieser beiden Quellen: Quelle 1 und Quelle 2.

Wie @drew010 betonte, verhindert dies immer noch nicht eine beängstigende Eingabeaufforderung für Benutzer, die etwas eingeben https als Teil Ihrer URL. Aber es wird sie umleiten http wenn sie zufällig durch die gruselige Eingabeaufforderung klicken, was unwahrscheinlich ist. Es scheint, dass die Anschaffung eines SSL-Zertifikats aus diesem Grund, für die allgemeine Sicherheit und für ein verbessertes Google-Ranking jetzt und in Zukunft wahrscheinlich die beste Option ist.

  • Sie sollten globale Variablen wie $_SERVER maskieren[‘REQUEST_URI’] Verwenden von esc_url, um jede Art von Exploits zu verhindern.

    – WPExplorer

    6. Januar 2018 um 1:46 Uhr


  • @WPExplorer, danke für den Rat – ich werde meine Antwort aktualisieren, sobald ich dies implementiert habe.

    – Kyle Vasella

    8. Januar 2018 um 20:58 Uhr


  • Könnte besser dran sein, dies als akzeptierte Lösung zu verwenden! Danke

    – Webkraft-Studios

    2. Januar 2019 um 19:56 Uhr

1646632148 924 WordPress leitet alle HTTPS auf HTTP um
Herr Oscha

Der htaccess-Weg ist einfach, besonders wenn Sie keinen Zugriff auf den Admin-Bereich in WordPress haben.

Fügen Sie diese einfach unter RewriteCond %{HTTPS} ein

RewriteRule (.*) HTTP://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

zusätzlich zu Ihren Zeilen versuchen Sie bitte, diese Zeilen in wp-config.php hinzuzufügen

define( 'WP_CACHE', false ); 
define('WP_HOME','http://adwordslead.com');
define('WP_SITEURL','http://adwordslead.com');
define('FORCE_SSL_ADMIN', false);
define( 'FORCE_SSL_LOGIN', false );

hoffentlich wird Ihr Fehler behoben

1646632149 308 WordPress leitet alle HTTPS auf HTTP um
Mongo

Dadurch wird https vollständig deaktiviert


    <IfModule mod_rewrite.c> 
        RewriteEngine On
        RewriteCond %{HTTPS} off
    </IfModule>

Dies lässt HTTPS aktiviert und verwendet dann Server-VARIABLEN, um alle Seiten auf HTTP umzuleiten:


    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{HTTPS} on
        RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI}
    </IfModule>

Hoffe das hilft dir….

963310cookie-checkWordPress leitet alle HTTPS auf HTTP um

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy