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
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.)