質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

Q&A

解決済

2回答

2598閲覧

URLを正規化した際のリダイレクトループを解決したいです。

ponkin

総合スコア5

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

0グッド

0クリップ

投稿2020/04/01 04:43

前提・実現したいこと

中古ドメインを購入し、一度はエックスサーバーでサイトを構築して、テーマやプラグインの設定も完了し、無料SSL化も設定したのですが、ミックスホストでの運営に切り替えたく、下記外部リンクの流れに沿ってサーバーを移転しました。
WordPressの他サーバーからの移転方法

このサーバー移転の作業自体に問題はなかったのですが、www無しからwww有りに、httpからhttpsにURLを正規化したかったので、ネットの情報を頼りに以下のように.htaccessに記述してみたところ、リダイレクトループに陥ってしまいました。

# BEGIN 自分で記述 <IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} ^自分のサイト.jp$ RewriteRule ^(.*)$ https://www.自分のサイト.jp/$1 [R=301,L] RewriteCond %{HTTPS} on RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [L,R=301] </IfModule> # BEGIN WordPress # `BEGIN WordPress` から `END WordPress` までのディレクティブ (行) は # 動的に生成され、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

何とかして現在の状態を脱して、サイトの記事を入れていきたいと思っておりますので、ご教示いただけますと幸いです。
何卒よろしくお願いいたします。

発生している問題・エラーメッセージ

先ほどの.htccessの状態で反映させてしまうと以下のような記載があり、ページが表示されない状態です。

このページは動作していません (自分のサイト.jp) でリダイレクトが繰り返し行われました。 Cookie を消去してみてください. ERR_TOO_MANY_REDIRECTS

試したこと

・cookieの削除→サイト表示されず
・.htaccessでhttp→httpsの正規化の記述を外した→サイト表示されず
・.htaccessでwww無し→www有りの正規化の記述を外した→サイト表示される

まずは上記の3つを試してみましたが、http→httpsの記述のみであれば表示されることがわかったものの、wwwのほうをなんとか正規化したいところでしたので、知り合いの方に相談したところ、「SSLに問題があるのでは?」との助言をいただきました。

そこで、以下の外部サイトを参考にwp-configへの追記とhttp→httpsへの記述を変更してみましたが、サイトの表示には至っていない状況です。
エックスサーバーでWordpressをSSL化(https)する時に無限ループでハマった

大変お忙しいとは存じますが、ご教示いただけますと幸いです。
何卒よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

解決にはならないと思いますが
自分がはまった点についてご参考になればと思います。

具体案ではないので申し訳ないのですが
R=301と記述してしまうとブラウザ側に強くキャッシュが残ってしまうため
修正してhtaccessをアップしたのに反映されていないなんてことがありました。

試す際はR=302で試すとhtaccessをアップしなおすだけで反映されます。
完全に修正が終わった段階でR=301に修正してみるといいと思います
※302のままだとgoogleさんが認識してくれないなどいろいろあるので最終的には301にする方が良い遠みます。

301:永続的
302:一時的

投稿2020/04/15 03:37

mabe

総合スコア22

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ponkin

2020/04/20 08:39

解決策を考えていただき、ありがとうございます。 WordPressの管理画面の設定でwwwをつけていない状態でのURLを記載していないという凡ミスが原因でしたので、お伝えしいたします。
mabe

2020/04/21 01:44

解決できて何よりです。
guest

0

ベストアンサー

httpからhttpsに

と書きながら、コードでは、httpsがオンのときにhttp://~にリダイレクトするようになってます。
逆でしょう?

Apache

1RewriteEngine on 2RewriteCond %{HTTP_HOST} ^自分のサイト.jp$ 3RewriteRule ^(.*)$ https://www.自分のサイト.jp/$1 [R=301,L] 4RewriteCond %{HTTPS} off 5RewriteRule ^(.*)$ https://www.自分のサイト.jp/$1 [L,R=301]

ただ、これがループの原因ではなさそうです。
タイプミスしているとか、他にリライト指定があるとか、ですかね。

投稿2020/04/01 15:07

otn

総合スコア84555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ponkin

2020/04/01 15:19

ご回答いただきまして、ありがとうございます。 確かに逆になっていました… ご回答いただきましたとおり修正してみましたが、解決には至っておりません。 自分でも引き続き調べて参ります。
otn

2020/04/01 15:23

タイプミスでありそうなのは、 ^自分のサイト.jp$ を 自分のサイト.jp$ と書いているとか。
ponkin

2020/04/02 11:33

その部分も確認してはみましたが、^はついていたので、違う部分が影響しているようです。 重ねて気にしていただきまして、ありがとうござます。
ponkin

2020/04/20 08:37

かなり時間がかかりましたが、WordPressの管理画面の設定でwwwをつけていない状態でのURLを記載していたことが原因でしたので、ご報告です。 先日はご回答いただきまして、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問