it-swarm.com.de

302-Umleitung erfolgt von 301 nach dem Wechsel zu HTTPS

Letzte Woche habe ich meine Website von HTTP auf HTTPS geändert.

Trotz der 301-Umleitungsregel in .htaccess werden alle alten (HTTP-) Seiten aus irgendeinem Grund mit einer 302-Umleitung umgeleitet. Ich kann nicht finden, was das ist und habe keine Plugins geändert. Das einzige, was ich erstellt habe, war eine zusätzliche Regel in .htaccess. Website url = https://www.janjippe.nl/

Hier ist eine Übersicht meiner .htaccess-Datei:

#BEGIN Wordpress
<IfModule mod_rewrite.c> 
RewriteEngine On 

RewriteCond %{HTTPS} !=on
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{HTTP_Host}%{REQUEST_URI} [R=301,L]

RewriteBase /

RewriteRule ^index\.php$ – [L]

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

Derzeit werden jedoch nur 302 Weiterleitungen angezeigt, wenn alle Seiten überprüft werden. Wie kann ich sicherstellen, dass eine 301-Umleitung anstelle einer 302-Umleitung vorhanden ist?

Dies ist für den Ordner private_html von Bedeutung.

Der Ordner public_html ist mit Ausnahme von 1 .htaccess-Datei mit folgendem Inhalt leer:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.janjippe.nl/$1 [R,L]

<IfModule mod_headers.c>
  Header set Strict-Transport-Security "max-age=31536000"
</IfModule>

# BEGIN WpFastestCache
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

AddDefaultCharset UTF-8

RewriteCond %{HTTP_Host} ^janjippe.nl
RewriteRule ^(.*)$ http\:\/\/www\.janjippe\.nl\/$1 [R=301,L]

RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{QUERY_STRING} !.*=.*
RewriteCond %{HTTP:X-Wap-Profile} !^[a-z0-9\"]+ [NC]
RewriteCond %{HTTP:Profile} !^[a-z0-9\"]+ [NC]
RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/all/$1/index.html -f [or]
RewriteCond /home/janjikm99/domains/janjippe.nl/public_html/wp-content/cache/all/$1/index.html -f
RewriteRule ^(.*) "/wp-content/cache/all/$1/index.html" [L]
</IfModule>

<FilesMatch "\.(html|htm)$">
  FileETag None

  <ifModule mod_headers.c>
  Header unset ETag
  Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
  Header set Pragma "no-cache"
  Header set Expires "Mon, 29 Oct 1923 20:30:00 GMT"
  </ifModule>
</FilesMatch>

# 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]
</IfModule>
# END WordPress
2
Marc
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.janjippe.nl/$1 [R,L]

Ihre "alte" .htaccess-Datei unter /public_html/.htaccess scheint die Weiterleitung des Verdächtigen 302 zu haben. Ohne einen expliziten Statuscode ist das Flag R standardmäßig 302.

Wenn die gesamte Site im Rahmen der Implementierung von SSL in den Ordner /private_html verschoben wurde, wird HTTP (Port 80) anscheinend von /public_html und HTTPS (Port 443) von /private_html aus bedient! (Etwas seltsames Setup, da Sie auf diese Weise (versehentlich) unterschiedliche Inhalte für jeden bereitstellen können - was eine schlechte Idee wäre.)

Wenn dies der Fall ist, könnten Sie wahrscheinlich die alte /public_html/.htaccess-Datei so ändern, dass sie einfach wie folgt lautet:

Redirect 301 / https://www.example.com/

Und möglicherweise entfernen Sie die HTTP-zu-HTTPS-Umleitung in der /private_html/.htaccess-Datei, da auf diese neue Site (in /private_html) ohnehin nur über HTTPS zugegriffen werden kann! Es kann jedoch vorzuziehen sein, diese Umleitung "nur für den Fall" beizubehalten, dass sich die Konfiguration ändert.

(Hinweis: Es kann einfacher sein, zuerst mit temporären 302-Weiterleitungen zu testen, da diese nicht zwischengespeichert werden. Wenn eine fehlerhafte Weiterleitung zwischengespeichert wird, kann das Debuggen verwirrend sein.)

1
MrWhite