.htaccessリダイレクトについて
リダイレクトが必要な場合
URLが変更されるときは常に必要です。リデザイン、サイト構造の変更、HTTPSへの移行、別ページへの統合など、いずれの場合も、ユーザーや検索エンジンがまだ保持している古いアドレスが残ります。
リダイレクトを設定するとユーザーは新しいページに移動し、適切に設定すれば、古いURLが獲得していたランキングシグナルも引き継がれます。設定しない場合、それらのシグナルは失われ、古いリンクをたどるユーザーも行き場を失います。
このジェネレーターは、古いURLと新しいURLのリストを、それを実現する.htaccessルールに変換します。
使用する3xxコード
301は、移転が恒久的であることを示します。検索エンジンは古いURLのシグナルを新しいURLに移し、最終的に古いアドレスをインデックスから削除します。ほとんどすべての場合、これを使用するのが適切です。
302は移転が一時的なものであることを示します。古いURLはインデックスに残り、評価シグナルも引き続き保持されます。これはメンテナンスページや季節限定のプロモーションには適していますが、それ以外の用途には不適切です。302を数か月間そのままにしておくと、何も問題があるように見えないため、検索順位を失う静かな原因の一つになります。
307と308は、302と301に相当する新しいステータスコードです。検索エンジンはこれらを同じように扱いますが、技術的な違いがあります。元のリクエストメソッドを維持するため、フォームのPOSTリクエストはGETに変換されず、POSTのまま新しいURLに送信されます。これはAPIやフォームハンドラーでは重要ですが、通常のページではほとんど問題になりません。308を提供するには、Apacheのバージョン2.4以降が必要です。
3xxの範囲にあるその他のステータスコードは、この用途には使用しません。300と305は実質的に使用されておらず、304はリダイレクトではなくキャッシュに関するレスポンスです。また、303はフォーム送信後にブラウザを確認ページへ移動させるためのものであり、いずれもリダイレクトファイルには含めません。
マッチングの実際の仕組み
リダイレクトはパス全体ではなく、パスの先頭部分に一致します。たとえば、/blog のルールは、個別に指定されていなくても /blog/post や /blog/category/thing も対象にします。この仕組みを知っていれば便利ですが、知らないと意外に感じることがあります。上位に広範囲なルールを置くと、より具体的なルールに到達できなくなるためです。
ドメイン全体を移転する場合も、同じ動作を利用できます。旧アドレスとして / を指定した1つのルールで、サイト上のすべてのページが対象になります。新しいドメインのルートを転送先に指定すれば、すべてのURLが移転します。
Redirect が理解しないのはパターンです。ここにはワイルドカードがないため、/* はリテラルなパスとして解釈され、何にもマッチしません。プレフィックスマッチングがすでにその役割を果たしています。本当にパターンが必要な場合は、代わりに RedirectMatch で正規表現を使用します。ただし、プレフィックスでは対応できない場合にのみ使用するのが適切です。
よくある間違い
- すべてをホームページにリダイレクトすると、ソフト404として扱われ、誰の役にも立ちません。
- A が B に、B が C に移動するようなチェーン。古いURLはすべて最終的な移動先に直接向けてください。
- 2つのルールがトラフィックを行き来させ、ブラウザーが処理を諦めるまで続くループ。
- 古いページの妥当な代替とはならないページにリダイレクトしている。
- バックアップを取らずに .htaccess を編集している。構文エラーがあると、サイト全体がダウンする。
## これらのルールを記述する場所
.htaccess は、サイトのルートディレクトリに配置される Apache の設定ファイルです。LiteSpeed でも読み込まれますが、Nginx は読み込まないため、サーバー設定内で独自の構文を使用する必要があります。
ルールは上から順に適用されるため、具体的なリダイレクトを一般的なリダイレクトより上に記述してください。変更する前に、正常に動作しているファイルのコピーを保存しておきましょう。ここでのミスは静かに失敗するのではなく、すべてのページで 500 エラーを返す原因になります。
少数のURLであれば、このファイルを使うのが適切です。数百件ある場合は、誰も開きたがらないファイルよりも、プラグインやデータベース駆動のルールのほうが管理しやすくなります。
.htaccessリダイレクトジェネレーターの使用方法
リダイレクトの種類を選択し、移動したURLごとに1行を追加して、ルールをダウンロードまたはコピーします。古いパスはドメインからの相対パスにし、移動先は完全なURLにしてください。
その後、いくつかを手動でテストしてください。ブラウザーでは正常に動作していても、ステータスコードが誤っていれば、本来引き継がれるはずだったSEOシグナルが失われます。
次に行うこと
Check the rules do what you expect with our
リダイレクトチェッカー, which follows every hop and shows the status codes. Confirm the destination returns a
ステータスコード of 200, and build the rest of your config with the
.htaccess generator.