web-dev-qa-db-ja.com

httpsリダイレクト(.htaccessを使用)リダイレクトループ

これに関してはかなりの数のスレッドが進行していますが、それらはすべて同じことを言っているようです(私が試したものです)が、私はリダイレクトループを受け続けます。私はすでに一般設定でWordPressのアドレス(URL)とサイトのアドレス(URL)を変更しようとしました(私の管理パネルはすでにhttpsにあります)

私の.htaccessはこんな感じです:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On

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

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

誰かアイデアがありますか?

2
Vincent

WebサイトをHTTPからHTTPSに更新するだけの場合は、.htaccessの編集を明確にします。別の方法を試してください。

まず、.htaccessをデフォルト設定に戻します。

# 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

次に、WebサイトのすべてのURLが最新であることを確認する必要があります。 Search Replace DBツールを使用して次の手順を試してください

  1. /に移動してダウンロード 相互接続ITのデータベース検索と置換スクリプトはこちら
  2. ファイルを解凍し、WordPressがインストールされている場所(ルート)のlocalhostにフォルダをドロップして、フォルダの名前をreplacescreenshot )に変更します。
  3. ブラウザで作成した新しいフォルダに移動し(例:http://web.site/replace)、 検索/置換ツールが表示されます
  4. ここまではっきりとわかります。search for…フィールドにHTTPSリンクを、replace with…フィールドに新しいHTTPSリンクを入力してください。

actions の下にある dry run ボタンをクリックすると、スクリプトを実行する前にそれが置き換えられる内容を確認できます。完了したら、/replace/フォルダを必ず削除してください。

しかしながら...

それでも.htaccessを介してHTTPをHTTPSにリダイレクトすることを主張する場合は、<IfModule mod_rewrite.c>タグの間に以下を追加してください。

RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]

次のようになります。

# 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]
# Rewrite HTTP to HTTPS
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]
</IfModule>
# END WordPress