私はウェブサーバーとしてnginxを使用しており、httpsを指すように構成ファイルを編集しているので、WordPressのURL設定をhttpsに変更し、WordPressの強制SSL管理コードをwp-configファイルに追加しましたが、エラーが発生し続けます「このWebページにはリダイレクトループがあります」
私はウェブサーバーとしてnginxを使用しており、httpsを指すように構成ファイルを編集しているので、WordPressのURL設定をhttpsに変更し、WordPressの強制SSL管理コードをwp-configファイルに追加しましたが、エラーが発生し続けます「このWebページにはリダイレクトループがあります」
回答:
wp-config.phpに追加$_SERVER['HTTPS'] = 'on';
しましたか?
また、使用すべきWPの移行のDBからの移行プラグインをhttp://yoursite.com
しますhttps://yoursite.com
私は同様の問題を抱えていて、次のスニペットを自分に追加しましたwp-config.php
:
/** SSL */
define('FORCE_SSL_ADMIN', true);
// in some setups HTTP_X_FORWARDED_PROTO might contain
// a comma-separated list e.g. http,https
// so check for https existence
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
$_SERVER['HTTPS']='on';
Codexで提案されているように。これは、ロードバランサー(またはファイアウォール)のセットアップでSSLパススルーが有効になっている場合にのみ必要です。つまり、TLS / SSL内のHTTPを介してサイトにアクセスできますが、サーバーが受信する通信はHTTPのみです。そのため、WordPressが設定配列on
でHTTPSを「設定」できるように、上記のヘッダーが必要です$_SERVER
。
$_SERVER['HTTPS'] = 'on';
HTTP_X_FORWARDED_PROTOがクライアントのサーバーの設定にも含まれていないため、私はただそれを置く必要がありました:|
私にはまだコメント特権がないので、この追加を別の回答として投稿します。
Eliasによって提案された解決策は、次を追加するwp-config.php
ために、私にトリックをしました:
/** SSL */
define('FORCE_SSL_ADMIN', true);
// in some setups HTTP_X_FORWARDED_PROTO might contain
// a comma-separated list e.g. http,https
// so check for https existence
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
$_SERVER['HTTPS']='on';
ただし、このファイルで他のすべての要素の前に配置した場合にのみ機能しました!
require_once( ABSPATH . 'wp-settings.php' );
が、ファイルの最後に配置する必要があります。
書籍の別のバージョン、これをwp-config.phpの先頭に追加するだけです
理由は、適切なhttps値を渡さないロードバランサーまたは何かがある可能性があるため、他の場所からそれを取得してワードプレス用に偽造する必要があるためです。
if ( (isset($_SERVER['HTTP_X_FORWARDED_PORT'] ) && ( '443' == $_SERVER['HTTP_X_FORWARDED_PORT'] ))
|| (isset($_SERVER['HTTP_CF_VISITOR']) && $_SERVER['HTTP_CF_VISITOR'] == '{"scheme":"https"}')) {
$_SERVER['HTTPS'] = 'on';
}
5歳の質問...
OK、SSL証明書をインストールし、ここにあるwp-cli.phar http
をhttps
使用するためのすべてのリンクを変更した後、このエラーが発生しました。
さまざまな構成を試しましたが、これを設定しない限り、これを解決するものはありませんでした:
define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
これに:
define('FORCE_SSL_ADMIN', false);
define('FORCE_SSL_LOGIN', false);
ログインページにアクセスできましたが、実際にはログインできませんでした。私は2つの答えを試しましたが、残念ながらそれも助けにはなりませんでした、次の変更を行うまで:
/** SSL */
define('FORCE_SSL_ADMIN', true);
// in some setups HTTP_X_FORWARDED_PROTO might contain
// a comma-separated list e.g. http,https
// so check for https existence
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== true)
$_SERVER['HTTPS']='on';
何らかの理由で、私は理由がわからない-私は変更しなければならなかった
!== false
に
!== true
ホストとしてnginxを実行し、nginxユニットへのリバースプロキシを実行しています...それがうまくいった理由が誰にもわからない場合は、教えてください