最新コラム
-
-
-
-
Webサイト制作Web開発
【shopify】テーマをカスタマイズするためのLiquidの書き方
-
Webサイト制作Webデザイン
Webデザインの初心者必見!Webデザインの勉強方法を徹底解説
リダイレクトエラーの対処法は、症状・原因によって異なります。
とくに.htaccessを使用している場合は、些細な記述ミスからhttps化の設定ミスまで原因が幅広く、適切に対処しなければなりません。
そこで今回は、代表的なリダイレクループ・500エラー・WordPressに特化した対処法を原因別に解説します。
▼リダイレクの関連記事
.htaccessファイルを使って設定したリダイレクトが反映されない時の原因や対処法は、症状によって異なります。
中でも代表的なのが、下記2種類のリダイレクトエラーです。
▼代表的なリダイレクトエラー
画面表示 | 意味 | |
リダイレクトループ | 「リダイレクトが繰り返し行われました。」 「リダイレクトが多すぎます。」 |
無限に繰り返されている 例:A→B→C→A |
500エラー | 「500 Internal Server Error」 | サーバー側に問題が発生している |
本記事では、上記に加えWordPressならではの原因と対処法についてもご紹介していきます。
なお、リダイレクトや.htaccessの基礎、動作確認ができる無料の検証ツールが知りたいという方は、下記の記事を参照して下さい。
▼関連記事
リダイレクトループとは、「Aページ→Bページ→Cページ→Aページ」といった具合に、延々と転送処理が続いている状態を指し、ワードプレスで発生しやすいのが特徴です。
リダイレクトループ(ERR_TOO_MANY_REDIRECTS)は、ほとんどの場合「リダイレクトが繰り返し行われました。」や「リダイレクトが多すぎます。」と表示されます。
ここからは、リダイレクトループが発生する主な原因とエラーの対処法について見ていきましょう。
▼リダイレクトループの主な「原因」と「対処法」
URLやパーマリンクの記述・設定ミスによるリダイレクトループは、下記のような状況で発生しやすいのが特徴です。
▼発生しやすいシチュエーション
URLやパーマリンクの設定ミスはリダイレクトループの主要原因とも言われており、解決するには下記の対処法が有効です。
▼対処法
httpからhttpsへ転送する際も、リダイレクトループが発生しがちです。
代表的なエラーの対処法として、下記の2通りの方法が挙げられます。
▼対処法
WordPressでキャッシュ系やパーマリンクの変更に関わるプラグインを使用している場合、リダイレクトループが起こる可能性があります。
▼リダイレクトループの原因となるプラグイン
上記を利用している場合は、下記の手順に沿ってリダイレクトループの原因になっているプラグインを特定しましょう。
▼プラグインによるエラーの対処法
なお、ブラウザのキャッシュを削除する方法は、後述する「500エラーの原因と対処法」を参考にしてください。
テーマもリダイレクトループが発生する原因の1つです。
中でもPHPのバージョンと合っていないテーマは、リダイレクトループが起きやすい傾向が見られます。
可能であれば検証済みのテーマに変更するのが理想的ですが、まずは使用中のテーマを最新バージョンにアップグレードしてみましょう。
「サーバーに問題がある」という意味を持つ500エラーも、.htaccessによるリダイレクト設定でありがちなエラーです。
500エラーの原因と対処法は他のリダイレクトエラーや不具合にも当てはまるケースが多いため、解決策の基本と言って良いでしょう。
▼500エラーの主な「原因」と「対処法」
.htaccessのリダイレクト設定で500エラーが発生する原因として、最もありがちなのがコーディングの記述ミスです。
ここでは、.htaccessの記述ミスについて下記の4項目に分けて解説していきます。
▼記述ミスの解決に役立つ情報
そもそも.htaccessには書き方ルールが定められており、1つでも守られていなければ500エラーが発生します。
▼.htaccessの書き方ルール
「リダイレクトの用途別に.htaccessの正しい記述例が知りたい!」という方は、下記の記事を参考にしてください。
▼関連記事
ここでは、.htaccessにありがちなよくある記述ミスについてご紹介します。
▼よくある記述ミス
.htaccess では、いくつかの文字列を1つの形式で表す「正規表現」という記述方法が使えます。
ただし、正規表現を使ったコーディングに慣れていない方にとっては、ミスしやすいのが難点。
初めて.htaccessファイルを作成する際は、書き方が間違っていないか後述する検証ツールで確認してみましょう。
「.htaccessの書き方に自信がない…」という方には、記述ミスを洗い出してくれる無料のチェックツールの活用をオススメします。
簡単4ステップで使えるうえ、ソフトをインストールする必要もありません。
▼「.htacsess check」の使い方
改行コードとは、.htaccessファイルを含むテキストファイルで文字を折り返す際に使用する制御文字です。
ほとんどの場合は「LF」で問題なく作動しますが、本来はサーバーのOSによって適切な改行コードが決まっています。
▼各OSに適した改行コード
.htaccessの正しいファイル名は「.htaccess」です。
わずかな違いでもの500エラーの原因になるため、下記のようなミスに気を付けましょう。
▼ファイル名のよくあるNG例
中でもWindows環境でありがちなのが、ファイル名にテキストエディタの拡張子が付いたままになっているケースです。
初期設定でOFFになっている「拡張子の表示」をONにして、「.htaccess.txt」から「.htaccess」のみに修正しましょう。
「拡張子が自動的にプラスされて削除できない!」という場合は、下記の手順で修正します。
▼拡張子を削除する方法
パーミッションとは、書き込みや読み込み権限を表す属性数値で、.htaccessファイルをサーバーにアップロードする際に指定します。
.htaccessを使ったリダイレクト設定で指定するパーミッションは、「604」または「644」が一般的です。
ただし、レンタルサーバーごとに推奨されているパーミッションが違いますので、確認してみて下さい。
.htaccessファイルは、設置した位置(ディレクトリ)以下のすべてに対して効果を発揮します。
言い換えれば、1つ上の階層もしくは1つ下の階層に配置してしまうと、意図した範囲で作動しないのです。
Webサイト全体を有効にしたい時は、index.htmlやindex.phpなどがある「TOPディレクトリ内」に.htaccessファイルを設置しましょう。
複数の.htaccessファイルを設置することは可能ですが、同じ項目(リダイレクトなど)で指示が異なる場合は要注意。
同じ項目に対して異なる2つの指示が競合すると下位の内容が優先されるため、上位に設定したルールが反映されなくなるのです。
例えば下記の例では、どちらもリダイレクトという同じ項目を扱っていますが、書かれている指示が異なっているので、下位に設置した.htaccessファイルの内容が優先されます。
▼同じ項目で指示が異なるケース
下記に当てはまる場合は、ブラウザのキャッシュ機能による影響を疑ってみましょう。
▼キャッシュ機能の影響を受けるケース
Google ChromeやMicrosoft Edgeといった主要ブラウザには、1度でも成功したリダイレクト先のURLを記憶するキャッシュ機能が備わっています。
注目すべきは、再設定した.htaccessよりもキャッシュ済みの情報の方が優先される、という点でしょう。
とくに恒久的な転送を意味する301リダイレクトでURLを間違えてしまうと、たとえ修正後の.htaccessを設定し直しても、過去にキャッシュされた変更前のURLに転送され続けるケースが多いのです。
最も理想的なのは予防ですが、すでに発生している場合は後述する「キャッシュを削除する方法」を試してみて下さい。
▼キャッシュ対策
書き方も設置場所も間違っていないのにリダイレクトが効かない、または古い設定が解除できない時は下記の手順に沿ってキャッシュを削除してみましょう。
▼ブラウザのキャッシュを削除する手順
こちらは、リダイレクトに限らず500エラー全般に当てはまる原因です。
何もしていないのに順調に稼働していたリダイレクトで急に500エラーが発生した、そんな時は一時的なアクセス急増が原因と考えられます。
通常、急激にアクセス数が上昇した時は「503 Service temporarily unavailable」と表示されますが、サーバーの処理速度が追いつかないと500エラーが発生することもあるのです。
場合によっては、負荷がかかり過ぎてサーバーがダウンすることもあります。
▼アクセス過多によってエラーが発生するケース
この場合、基本的にはアクセスが収まるかサーバーが復旧するまで待つしかありません。
ただし、スパム攻撃やサーバーダウンに対しては下記のような処置を講じておくべきでしょう。
▼アクセス過多による500エラーの対処法
ごく稀ではあるものの、Googleクローラーの巡回頻度が異常に多くなるケースがあります。
クローラーの巡回頻度が過剰なほど増えると、前述したアクセス集中と同じ状態になるため、サーバーに負荷がかかって500エラーが発生してしまうのです。
ちなみに、こちらも前述したアクセス集中と同じく500エラー全般に当てはまる原因です。
クローリングの頻度を確認するだけなら、サーバーログファイルでも可能です
しかし、同時に制限もしたいならサーチコンソールを活用してみましょう。
▼クローリング頻度の確認と制限する方法
ここからは、WordPressならではの原因と対処法について解説していきます。
▼WordPressで発生する500エラーの主な「原因」と「対処法」
PHP・WordPress本体・テーマ・プラグインは複雑に連携しています。
そのため、組み合わせの相性が悪かったりバージョンの差が大きかったりすると、リダイレクトループだけでなく500エラーも発生しやすくなるのです。
▼WordPress特有の原因
このケースが疑われる場合は、前述した「リダイレクトループの原因と対処法」を参考にしてください。
ドット(.)から始まるファイルの多くは、システム動作に影響を与える重要なファイルですから、ほとんど変更する必要はありません。
だからこそ誤って変更しないよう、あえてドットから始まる「隠しファイル」になっているのです。
FTPソフトやPC環境で隠しファイルが非表示になっている場合は、たとえ.htaccessの内容が正しくてもリダイレクト設定は反映されません。
▼.htaccessファイルの非表示を解除する方法
意外と盲点なのが、そもそも.htaccessファイルが作成されていないというケースです。
WordPressを導入すると、通常は.htaccessファイルも一緒にインストールされます。
しかし、WordPressの導入時に不具合が発生すると.htaccessファイルがインストールされないことがあるのです。
設定したはずのリダイレクトが反映されず、前述した対処法を試しても.htaccessファイルがみつからなかった場合は、下記を試してみましょう。
▼.htaccessファイルが作成されていなかった時の対処法
サーバーへのアクセス権限を持っていないスタッフでも、簡易的にリダイレクト設定を可能にしてくれるのが.htaccessの強みです。
その反面、コーディングに慣れていない人やWordPressの構造に詳しくない人が扱うと、些細なミスでリダイレクトエラーが頻発するという弱点を併せ持っています。
失敗してもリカバーできるよう、必ず302でテストを行ってから恒久的な301に切り替えるのが大前提。
もしリダイレクトエラーが発生した場合は、ぜひ本記事で解説している対処法を参考にしてみて下さい。