it-swarm.com.de

Umleiten von HTTPS zu HTTP hinter Proxy (CloudFlare)

Ich möchte HTTPs zu HTTP umleiten. Ich habe versucht, den folgenden Code in der .htaccess-Datei zu verwenden

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{SERVER_PORT} ^443$
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=301,L]

Ich habe auch den folgenden Code in der Datei .httaccess ausprobiert, der ebenfalls nicht funktioniert hat.

Options +FollowSymlinks

<IfModule mod_rewrite.c>
    RewriteEngine On

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

    # BEGIN WordPress
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    # END WordPress
</IfModule>

Ich habe auch ein paar HTTPS to HTTP WordPress Plugins ausprobiert, was auch nicht funktionierte.

Bitte leiten Sie mich, wie ich dieses Problem beheben kann.

4
Amit

ja, ich benutze Flexible SSL (Free) Cloudflare Service

Das ist das Problem". Wie Antony in Kommentaren vorschlägt. Ihr Server antwortet auf Anfragen an Port 80 (normales HTTP). Die SSL-Verbindung besteht nur zwischen dem Besucher und CloudFlare. Die Verbindung zwischen CloudFlare und Ihrem Server ist nicht verschlüsselt. Dies ist der CloudFlare-Dienst "Flexible SSL" (kostenlos).

Referenz:
https://support.cloudflare.com/hc/en-us/articles/200170416-What-do-the-SSL-options-mean-

Da Sie anscheinend alle Anfragen an HTTP umleiten möchten, sollten Sie die SSL-Option bei CloudFlare deaktivieren.


UPDATE: Da Ihr Server mit normalem HTTP arbeitet und das SSL vom Front-End-Proxy (in diesem Fall CloudFlare) verarbeitet wird, ist dies die einzige Möglichkeit Erkennen Sie das Protokoll der ursprünglichen Anforderung (dh HTTP oder HTTPS), wenn der Proxy diese Informationen in einem HTTP-Anforderungsheader sendet, dh. X-Forwarded-Proto gemäß Konvention.

Von Wikipedia - Liste der HTTP-Header-Felder - X-Forwarded-Proto :

ein De-facto-Standard zum Identifizieren des Ursprungsprotokolls einer HTTP-Anforderung, da ein Reverse-Proxy (oder ein Load-Balancer) unter Verwendung von HTTP mit einem Webserver kommunizieren kann, selbst wenn die Anforderung an den Reverse-Proxy HTTPS ist.

Einbindung in eine HTTPS-zu-HTTP-Umleitung:

RewriteCond %{HTTP:X-Forwarded-Proto} =https [NC]
RewriteRule (.*) http://www.example.com/$1 [R=301,L]

Referenz:
Cloudflare-Unterstützung - Wie behebe ich den Fehler in der Endlosumleitungsschleife, nachdem Flexibles SSL mit WordPress aktiviert wurde? (Enthält relevante Informationen, die nicht von WordPress stammen)

2
MrWhite