web-dev-qa-db-ja.com

HTTPSへの切り替え後、301ではなく302にリダイレクト

先週私は自分のウェブサイトをHTTPからHTTPSに変更しました。

.htaccessの301リダイレクトルールにもかかわらず、すべての古い(HTTP)ページは何らかの理由で302リダイレクトでリダイレクトされます。私はこれが何であるかを見つけることができず、まったくプラグインを変更しませんでした。私が作成した唯一のものは.htaccessの追加のルールでした。ウェブサイトのURL = https://www.janjippe.nl/

これが私の.htaccessファイルの概要です。

#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

しかし、現在のところ、すべてのページをチェックしたときに302リダイレクトしか表示されません。どのように私は302リダイレクトの代わりに301リダイレクトがあることを確認することができますか。

これはprivate_htmlフォルダにとって重要です。

public_htmlフォルダーは、次の内容を含む1 .htaccessファイルを除いて空です。

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]

.htaccessにあるあなたの「古い」/public_html/.htaccessファイルは、疑わしい302リダイレクトを持つように見えます。明示的なステータスコードがないと、Rフラグはデフォルトの302になります。

SSLの実装の一環としてサイト全体が/private_htmlフォルダーに移動された場合、HTTP(ポート80)は/public_htmlから提供され、HTTPS(ポート443)は/private_htmlから提供されるように見えます。 (これはちょっと奇妙な設定で、(誤って)それぞれに異なるコンテンツを提供することができます - これは悪い考えです。)

このような場合は、おそらく古い/public_html/.htaccessファイルを単に読むように変更できます。

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

そして 潜在的に /private_html/.htaccessファイル内のHTTPからHTTPSへのリダイレクトのリダイレクトは、とにかくHTTPS経由でのみアクセスされるように思われるので/private_htmlで!ただし、構成に変更があった場合に備えて、このリダイレクトを適切な場所に保持することをお勧めします。

(注:一時的な302リダイレクトはキャッシュされないため、最初にテストするほうが簡単です。誤ったリダイレクトがキャッシュされると、デバッグが混乱する可能性があります。)

1
MrWhite