it-swarm.com.de

htaccess https leitet von www zu nicht www um

Ich habe .htaccesshttps hinzugefügt und von www zu non-www umgeleitet mit:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_Host} ^www\.
    RewriteCond %{HTTPS}s ^on(s)|off
    RewriteCond http%1://%{HTTP_Host} ^(https?://)(www\.)?(.+)$
    RewriteRule ^ %1%3%{REQUEST_URI} [R=301,L]
</IfModule>`

Wenn ich meine Domain besuche, treten die folgenden Weiterleitungen problemlos auf:

http://www.example.com     → http://example.com
http://www.example.com/abc → http://example.com/abc

Wenn ich jedoch meine Domain als https://www.example.com oder https://www.example.com/abs besuche, leitet meine Domain nicht weiter und zeigt den Fehlercode an: SSL_ERROR_INTERNAL_ERROR_ALERT (in Firefox) oder ERR_SSL_PROTOCOL_ERROR (in Chrome)

Ich habe WordPress und das Plugin Really Simple SSL verwendet.

Irgendeine Idee, wie ich meinen Fehler beheben kann?

4
DinhTv

Bevor ich Ihnen den CODE gebe, möchte ich einige Punkte erläutern:

Punkt 1:

Es ist besser, wenn Sie nur https Links zulassen. Mischen von http & https für den gleichen Inhaltbricht die Sicherheithinzugefügt von https. Mit http können Sie niemals sicher sein, dass Ihren Besuchern dieselbe Seite angezeigt wird, die Sie von Ihrem Server aus bereitstellen.

Punkt 2:

Suchmaschinen betrachten http & https Sites als unterschiedliche Sites, auch wenn die Domain dieselbe ist. Wenn Sie also nicht richtig eingerichtet sind, können Sie eine doppelte Strafe erhalten. Es wird daher empfohlen, https vollständig zu verbessernSEO.

Punkt 3:

Selbst mit dem richtigen .htaccess CODE wird möglicherweise der gleiche Fehler angezeigt, wenn SSL nicht ordnungsgemäß eingerichtet ist. Nachdem Sie den .htaccess CODE geändert haben, ist es besser, Ihr SSL-Setup anhand von Standards zu testen. Sie können ein Tool wie this verwenden.

Empfohlener CODE:

Anhand der obigen Punkte können Sie den folgenden CODE verwenden:

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{HTTPS}        =off   [OR]
    RewriteCond %{HTTP_Host}    !^example\.com$
    RewriteRule ^(.*)$          "https://example.com/$1" [R=301,L]

    # remaining htaccess mod_rewrite CODE for WordPress
</IfModule>

Dadurch werden die folgenden Beispiel-Weiterleitungen ausgeführt:

http://www.example.com/     → https://example.com/
http://www.example.com/abc  → https://example.com/abc
https://www.example.com/    → https://example.com/
https://www.example.com/abc → https://example.com/abc

# Additionally, even if your site is reachable by IP or
# some other domains or subdomains, this CODE will fix that too
http://Your_Server_IP/abc          → https://example.com/abc
http://sub-dmoani.example.com/abc  → https://example.com/abc
http://www.other-domain.com/abc    → https://example.com/abc

Nicht empfohlener CODE:

Wenn Sie aus irgendeinem Grund die obige Empfehlung nicht befolgen und trotzdem sowohl http als auch https zulassen möchten, können Sie den folgenden CODE (basierend auf diese Antwort ) verwenden:

<IfModule mod_rewrite.c>
    RewriteEngine On

    # set protocol variable
    RewriteCond %{HTTPS} =on
    RewriteRule ^(.*)$ - [env=proto:https]
    RewriteCond %{HTTPS} =off
    RewriteRule ^(.*)$ - [env=proto:http]

    RewriteCond %{HTTP_Host} !^example\.com$
    RewriteRule ^(.*)$       "%{ENV:proto}://example.com/$1" [R=301,L]

    # remaining htaccess mod_rewrite CODE for WordPress
</IfModule>

Dadurch werden die folgenden Beispiel-Weiterleitungen ausgeführt:

http://www.example.com/     → http://example.com/
http://www.example.com/abc  → http://example.com/abc

https://www.example.com/    → https://example.com/
https://www.example.com/abc → https://example.com/abc
7
Fayaz