it-swarm.com.de

die htaccess 301-Umleitung von http zu https funktioniert nicht

Ich habe heute von http auf https aktualisiert. So weit, ist es gut. Alles funktioniert, aber der Umleitungsbefehl. Wenn ich auf externe soziale Medien oder Websites klicke, die mit der alten Version http auf meinen Blog verlinken, wird dieser nicht weitergeleitet.

So sieht ein Teil meiner Datei aus:

# -FrontPage-
IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*
<Limit GET POST>
order deny,allow
deny from all
allow from all
</Limit>
<Limit PUT DELETE>
order deny,allow
deny from all
</Limit>
AuthName zoomingjapan.com
AuthUserFile /home/zoomingj/public_html/_vti_pvt/service.pwd
AuthGroupFile /home/zoomingj/public_html/_vti_pvt/service.grp
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{HTTP_Host} ^zoomingjapan.com [NC,OR]
RewriteCond %{HTTP_Host} ^www.zoomingjapan.com [NC]
RewriteRule ^(.*)$ https://zoomingjapan.com/$1 [L,R=301,NC]
</IfModule>

# END WordPress

Ich habe stattdessen auch versucht, kein positives Ergebnis:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_USER_AGENT} !FeedBurner    [NC]
RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
RewriteRule (.*) https://%{HTTP_Host}/$1 [R=301,L]
</IfModule>

Dies ist ein http Link . Sie können selbst testen und feststellen, dass keine Weiterleitung erfolgt.

Könnte ein Caching-Plugin stören? Ich verwende LiteSpeed ​​Cache.

1
japanworm

Sie haben den Umleitungscode an der falschen Stelle eingegeben. Es muss nach vor dem Abschnitt # BEGIN WordPress gehen. Wenn Sie den Redirect-Code nach dem WordPress-Front-Controller einfügen, wird er nur verarbeitet, wenn Sie eine physische Datei anfordern.

Ihr erster Versuch ist jedoch nicht korrekt (es fehlt die Prüfung für HTTPS), was zu einer Umleitungsschleife führen würde (falls sie ausgeführt wurde).

Ein Standard-HTTP zu HTTPS würde die folgende Form annehmen:

RewriteCond %{HTTPS} off
RewriteRule (.*) https://www.example.com/$1 [R=301,L]

Idealerweise sollten Sie dies jedoch auch mit einer kanonischen WWW-/Nicht-WWW-Weiterleitung kombinieren, um doppelte Inhalte oder mehrfache Weiterleitungen zu vermeiden. Wenn Sie beispielsweise www bevorzugen (und keine anderen Unterdomänen haben), dann ist etwa Folgendes möglich:

# Redirect bare domain to www and HTTPS
RewriteCond %{HTTP_Host} !^www\.
RewriteRule (.*) https://www.example.com/$1 [R=301,L]

# Redirect HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_Host}/$1 [R=301,L]

UPDATE: Wenn Sie die Nicht-WWW-Version bevorzugen, können Sie die erste Regel so ändern, dass sie etwa wie folgt lautet:

# Redirect www to non-www (and HTTPS)
RewriteCond %{HTTP_Host} ^www\.
RewriteRule (.*) https://example.com/$1 [R=301,L]

(Angenommen, Sie haben auch die erforderlichen Einstellungen in WordPress geändert.)

4
MrWhite

Versuche dies:

RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</IfModule>
# END WordPress
0
Jasom Dotnet