なぜ 301 リダイレクトが必要なのでしょうか? URLを変更しても重量は減らないのですか?

なぜ 301 リダイレクトが必要なのでしょうか? URLを変更しても重量は減らないのですか?

オンラインの世界では、301 リダイレクトは、Web サイトのトラフィックと SEO に重要な役割を果たす非常に重要な概念です。

ウェブを閲覧中に、検索エンジンに URL を入力した後、別のページにリダイレクトされたことはありませんか?これは 301 リダイレクトが原因である可能性があります。 301 リダイレクトは、URL を別の URL に永続的にリダイレクトする方法です。

この記事では、技術的な背景を説明し、htaccess を使用して 301 リダイレクトを設定する方法を紹介します。

なぜ 301 リダイレクトが必要なのでしょうか?

301 リダイレクトは、最もよく知られているリダイレクトの種類です。 301 という数字は HTTP ステータス コードに基づいています。 ステータス コード 404 は要求されたリソースが見つからないことを示し、300 コードはリダイレクトを示します。 通常、404 エラーを回避するには 301 リダイレクトを使用します。

最も重要な HTTP ステータス コードの概要は次のとおりです。

HTTP ステータス コード説明する
200 大丈夫ですサーバーは要求されたアドレスでリソースを見つけ、それを送り返すことができます。
301 永久に移動しました要求されたアドレスのリソースは恒久的に移動され、サーバーはそこからリソースを返しました。 古いアドレスは無効になりました。
302 件見つかりました要求されたアドレスのリソースは一時的に移動され、サーバーはそこからそれを返しました。 古いアドレスは将来のある時点で再び有効になります。
303 その他を見るただし、302 と同様に、一時アドレスを開く場合は GET リクエストのみが許可されます。
307 一時リダイレクト302 に似ていますが、303 とは異なり、クライアントは一時アドレスを開くときに HTTP メソッド (GET、POST、PUT など) を変更する場合があります。
404 見つかりませんサーバーは要求されたアドレスでリソースを見つけることができませんでした。

Web 上のコンテンツやリソースを見つけるには、URL を使用する必要があります。 コンテンツの移行が発生すると、コンテンツが見つかるアドレスが変更されます。 しかし、内容自体はそうではありません。 これは、HTTP から HTTPS に切り替えたり、サイトをあるドメインから別のドメインに移動したりするときによく発生します。 検索エンジンのリンク構造を最適化する際にもアドレスが変更される場合があります。 これらすべてのケースでは、ユーザーが古いアドレスを使用してコンテンツにアクセスしようとしたときに空白のページが表示されることは避けたいものです。

サーバーが指定されたアドレスでリソースを見つけられない場合は、HTTP 404 Not Found エラーが返されます。 このようなエラーが発生すると、ユーザーはアクセスしたい Web ページにアクセスできないため、イライラしてしまいます。 アドレスが人間ではなく Web クローラーによって開かれた場合、404 エラーが発生してリソースがインデックスから削除される可能性があります。 ウェブサイト運営者は、両方の状況を回避するために最善を尽くします。

301 リダイレクトは、Web コンテンツのアドレスを変更するだけでなく、検索エンジン最適化 (SEO) とオンライン マーケティングの重要な部分でもあります。 301 リダイレクトは、検索に適した正規の URL を作成するために使用されます。 URL 短縮サービスはソーシャル メディアでよく使用され、301 リダイレクトから派生したものでもあります。

301 リダイレクトはなぜ SEO にとってそれほど重要なのでしょうか? 302、303、307 リダイレクトとは異なり、301 リダイレクトは元のアドレスの「リンク ジュース」を新しいアドレスに転送します。 検索エンジンがすでにこのコンテンツをインデックスし、肯定的に評価している場合は、アドレスが 301 リダイレクトに置き換えられても評価は失われません。 301 リダイレクトにより、マルチドメイン戦略などの複雑な SEO 戦略も可能になります。

301 リダイレクトはどのように機能しますか?

301 リダイレクトは、Web サーバーとクライアント間のやり取り中に使用されます。 サーバーは、要求されたリソースが指定された URL では利用できなくなったことをクライアントに通知し、新しい有効なアドレスを提供します。 人間のブラウザと検索エンジンのロボットはどちらもクライアントと見なすことができます。

  1. クライアントは URL のリソースにアクセスしようとします。
  2. サーバーは「301 Moved Permanently」というステータス コードで応答し、新しい URL を HTTP Location ヘッダーとして提供します。
  3. クライアントは新しい URL をキャッシュに保存します。つまり、それ以降に古い URL にアクセスしようとすると、自動的に新しい URL にリダイレクトされます。
  4. その後、クライアントは新しい URL からリソースにアクセスしようとします。

301 リダイレクトがクライアントとサーバー間でどのように機能するかを見てきました。 しかし、サーバー上で 301 リダイレクトを設定するにはどうすればよいでしょうか? これを行うにはさまざまな方法がありますが、最も一般的な方法の 1 つは、Apache Web サーバーの htaccess ファイルでリダイレクトを設定することです。 これを機能させるには、対応する Apache モジュールをオンにする必要があります。

命令Apache モジュール説明する*
リダイレクトmod_aliasシンプルなリダイレクト
リライト書き換え複雑なリダイレクト

htaccess ファイルで簡単な 301 リダイレクトを設定する方法を見てみましょう。 これを行うには、mod_alias モジュールのリダイレクト ディレクティブを使用します。 これらの方法は、サーバー上の URL を別の URL にリダイレクトする場合に最適です。 テンプレートは次のとおりです。

 301 リダイレクト "/source_path" "target_URL"

次に、サーバー上の URL を別の内部 URL にリダイレクトします。 先頭のスラッシュは、URL パスの始まり、つまりドメイン名の後の部分を示します。

 301 リダイレクト "/old.html" "/new.html"

外部 URL に送信するには、外部 URL をターゲットとして追加します。

 301 リダイレクト "/old.html" "http://example.com/new.html"

リダイレクト ディレクティブを使用すると、htaccess ファイル内のインデックス全体に対して 301 リダイレクトを定義することもできます。 この例では、「cn」パス コンポーネントを使用してすべての URL をサブドメインにリダイレクトします。

 301 リダイレクト "/cn/" "http://de.example.com/"

同様に、ドメイン上のすべての URL を新しいドメインにリダイレクトすることもできます。

 301 リダイレクト "/" "http://other.example.com/"

類似のパターンを持つ個々のアドレスをリダイレクトする場合は、RedirectMatch ディレクティブを使用できます。 この方法では、リダイレクトを個別に記録する必要がなくなります。 この命令では、標準的な表現を使用してパターンを認識し、そこから抽出します。

リダイレクトマッチ 301 正規表現 URL

ここでは、GET パラメータから記事のカテゴリと ID を抽出し、パスにリダイレクトする RedirectMatch エントリを紹介します。

リダイレクトマッチ 301 "/article.php?cat=(.*)&id=(.*)" "/articles/$1/$2/"

ドメイン名が example.com であると仮定します。

URL http://example.com/article.php?cat=web&id=42 は http://example.com/articles//web/42/ にリダイレクトされます。

高度なリダイレクト用の 301 リダイレクトを作成するには、Apache 書き換えモジュール mod_rewrite の書き換えディレクティブを使用できます。 これにより、リダイレクト条件を定義および要求し、環境変数を設定および読み取り、一般的な用語でリダイレクト ルールを定義することができます。

mod_rewrite を使用すると、リダイレクト ルールを連鎖できます。 このモジュールは、URL を改革し、リダイレクトを実行するためのミニプログラミング言語のようなものを提供します。 ただし、誤って使用すると無限ループが発生する可能性があるため、注意が必要です。

書き換えディレクティブは、ターゲット「RewriteEngine on」で始まり、その後にオプションの RewriteCond 条件が続きます。 これに続いて、1 つ以上の RewriteRule リダイレクト ルールが続きます。 フラグを使用すると、本質的に異なるオプションである書き換え条件とルールの動作を変更できます。 301 リダイレクトを設定するには、ルールにフラグ L、R = 301 が含まれている必要があります。

 RewriteEngineオン
RewriteCond TestString CondPattern [フラグ]
RewriteRule URL_path 置換 [L,R=301]

リダイレクト ルールと条件では、%{HTTP_HOST}、%{REQUEST_URI} などの形式から複数のヘッダーとサーバー変数にアクセスできます。これらの変数は演算子によってリンクされ、関数として編集できます。 つまり、構文が完全に直感的でない場合でも、ほぼすべての必要なリダイレクトを実行できます。

mod_rewrite を使用して 301 リダイレクトを実行する例を見てみましょう。 当サイトでは、重複コンテンツを避けるために正規 URL を強制したいと考えています。 つまり、ユーザーがコンテンツを開く方法に関係なく、すべての URL は HTTPS と www. で始まります。

2 つのリダイレクト条件を定義し、OR 記号を使用してそれらをリンクできます。 最初の条件は HTTPS がオフになっているかどうかをチェックし、2 番目の条件はドメインにプレフィックス「www」がないかどうかをチェックします。 NC フラグを使用すると、大文字と小文字の違いをオフにすることができます。 これらの条件のいずれかが当てはまる場合、https-www にリダイレクトします。 URL のバージョン。 これを実現するために、すべての URL がアクセスする共通のフレーズ (.*) を使用します。 ドメインの後に入力するには、$1 を使用します。

 RewriteEngineオン
RewriteCond %{HTTPS} オフ [または]
書き換え条件 %{HTTP_HOST} ^example\.com [NC]
書き換えルール (.*) https://www.example.com/$1 [L,R=301]

301 リダイレクトを使用する場合の問題点とリスクは何ですか?

301 リダイレクトは、Web 開発と SEO でよく使用されるツールです。 ただし、注意が必要です。 リダイレクトが正しく使用されない場合には、サーバーのクラッシュや検索エンジンのランキングの低下など、さまざまな問題が発生する可能性があります。

htaccess ファイルは、インデックス レベルで Apache Web サーバーを構成します。 htaccess ファイルにほんの少し間違った変更を加えるだけでも、Web サイトが簡単にオフラインになる可能性があります。 その結果、WordPress で心配なサーバー エラー 500 または死の白い画面が発生します。

これを回避するには、編集時に htaccess ファイルをコピーするのが最善です。 これはコマンド バーから簡単に実行できます。 サイトのパブリック Web インデックスに切り替えて、cp コマンドを使用するだけです。

 cp -a .htaccess _htaccess

htaccess ファイルの変更によってエラーが発生した場合は、元のバージョンに戻すことができます。

 cp -a _htaccess .htaccess

リダイレクトは便利ですが、リクエストとレスポンスのサイクル全体を消費する可能性があります。 チェーンリダイレクトを使用すると、ユーザーは待たされるので、直帰率が増加する可能性があります。 検索エンジンは、ウェブサイトが連続して複数のリダイレクトを実行する場合も、ウェブサイトを否定的に評価します。 経験則として、リダイレクトは 3 つ以上設定しないでください。

起こり得る最悪の事態は、2 つのアドレスが相互にリダイレクトし続けるリダイレクト ループです。 これは、ユーザーにはブラウザ エラー ERR_TOO_MANY_REDIRECTS として表示され、アクセスしようとしたリソースが利用できなくなったことを意味します。 希望する結果が得られるかどうかを確認するには、cURL を使用してリダイレクトをテストしてみてください。

301 リダイレクトを不適切に使用すると、後で多くの問題を引き起こす可能性があります。 一時的な 302、303、307 リダイレクトとは異なり、301 リダイレクトはクライアントに新しい URL をキャッシュに保存するように指示します。 元の URL に戻りたい場合、クライアントには通知されません。 代わりに、新しい URL への接続を試行し続けます。 これを修正するには、一時的なリダイレクトを使用するか、cache-control 値を適切な値に設定します。

cache-control ヘッダーを 1 時間に設定してみましょう。 これにより、リダイレクト ターゲットへの今後の変更がすべてのクライアントに反映されるようになります。

有効期限有効日
有効期限デフォルトは「アクセスプラス1時間」
リダイレクト 301 / https://www.example.com/

書き換えディレクティブを使用した高度なリダイレクトを使用している場合は、cache-control ヘッダーを設定するためのコツがあります。 301 リダイレクト ルールの一部として環境変数 limitcache を定義できます。 最後に、環境変数を条件として使用してヘッダーを設定できます。 これにより、リダイレクト時に常に正しいヘッダーが使用されるようになります。

書き換えルール ^.* http://www.example.com/ [L,R=301,E=limitcache:1]
ヘッダーは常に Cache-Control "max-age=3600" env=limitcache を設定します

301 リダイレクトに従うように求められましたが、ブラウザが元のアドレスへのアクセスを拒否していますか? ?foo=bar を含むクエリ文字列を古いアドレスに追加し、ブラウザに URL を強制的に読み込むようにします。

301 リダイレクトの概要

301 リダイレクトとは何かを学んだ後、次のような結論を導き出すことができます。

  1. 301 リダイレクトは、リソースが新しい場所に永続的に移動されたことを示すために使用される HTTP ステータス コードです。
  2. ページの URL が変更されたり、Web サイトが再構築されたりした場合は、301 リダイレクトを使用して古い URL を新しい URL にポイントし、ユーザーと検索エンジンが関連するコンテンツにスムーズにアクセスできるようにすることができます。
  3. 301 リダイレクトはユーザー エクスペリエンスにとって非常に重要です。これにより、ユーザーが古い URL にアクセスしたときに新しいアドレスに自動的にジャンプできるようになり、404 ページの発生を減らすことができます。
  4. 検索エンジン最適化 (SEO) の場合、301 リダイレクトは、古い URL の権限とランキングを新しいアドレスに移行することで、検索結果におけるサイトの可視性とランキングを維持するのに役立ちます。
  5. 301 リダイレクトを使用する場合は、誤ったリダイレクトや無限ループを回避するために、正しいリダイレクト ルールを設定する必要があります。
  6. ウェブサイトの開発とメンテナンスのプロセスにおいて、301 リダイレクトを理解して正しく適用することは、ウェブサイトのユーザー エクスペリエンスと検索エンジンの認識性を向上させる最も重要なスキルの 1 つです。

301 リダイレクトを学習することで、Web サイトの URL 構造の変更をより適切に管理し、ユーザーと検索エンジンに優れたアクセス エクスペリエンスを提供できるようになります。同時に、301 リダイレクトを適切に使用することで、Web サイトの SEO 価値とランキングを維持するのにも役立ちます。

<<:  HTTP 500 内部サーバーエラーとはどういう意味ですか?どのように解決すればよいでしょうか?

>>:  Inno Setup を使用してソフトウェアのインテリジェント アップグレード更新パッチを作成する方法を教えてください。

推薦する

ゲームに最適なモバイル プラットフォームは Android と iOS のどちらですか?

最近、私たちは携帯電話に費やす時間がますます増えています。多くの人にとって、モバイル デバイスは常に...

Wise Disk Cleaner (システムクリーニングツール) v11.2.1.838 多言語ポータブル版

Wise Disk Cleaner は、システム内の不要なファイルやジャンク ファイルをクリーンアッ...

PDFsam Basic (PDF 編集ソフトウェア) v5.1.1 中国語無料版

PDFsam Basic は、PDF ドキュメントの読み取り、編集、注釈付け、暗号化、署名、OCR ...

Passliss (オープンソースのランダムパスワード生成ツール) v2.9.0.2302 多言語無料版

Passliss は、ユーザーのプライバシーとセキュリティを保護するために、すべてのパスワードとアカ...

Aiseesoft ビデオエディタ (ビデオ編集ソフトウェア) v1.0.30 多言語ポータブル版

Aiseesoft Video Editor は、ユーザーが高品質のビデオ コンテンツを編集および制...

ESET インターネット セキュリティ v16.0.28.0 (最後の Win7) x86 および x64 スペシャル エディション

ESET Internet Security は、総合的なネットワーク保護を提供できる複数の機能と特...

HeidiSQL (オープンソース データベース管理ツール) v12.10.0.7000 多言語ポータブル バージョン

HeidiSQL は、ユーザーがデータベースを管理および保守するための直感的で使いやすいインターフェ...

PS Hash(ファイルハッシュ値検証ツール)v1.0 グリーン中国語版

PSHash は、ファイルのチェックサム値を比較してファイルの整合性と一貫性を確保するために使用でき...

BCArchive (強力な暗号化および圧縮ソフトウェア) v2.08.0.4 中国語無料版

BCArchive は、ユーザーがコンピューター上に暗号化されたアーカイブを作成するのに役立つ強力な...

MPad (無料の高度なコード エディター) v1.36 中国語グリーン版

MPad は、ANSI、UTF-8、UTF-16 などの複数のエンコード形式をサポートし、TXT、H...

MusicBee (ミュージック マネージャー プレーヤー) v3.5.8698 中国語グリーン版

MusicBee は、ユーザーが音楽を簡単に管理および再生できるようにする無料の音楽管理ソフトウェア...

アップグレード中に Windows Update が停止する問題を修正するにはどうすればよいですか?

多くの人が私と同じ問題に遭遇すると思います。Windows Update がダウンロード中またはイン...

WinZip Android版(モバイル圧縮ファイル管理ソフト)v7.1.0修正版

WinZip for Android は、ユーザーがファイルを圧縮、解凍、管理するのに役立つ一連の機...

トラフィックモニター(インターネット速度監視フローティングウィンドウソフトウェア)v1.85.1 中国語グリーンバージョン

Traffic Monitor は、コンピューターのネットワーク使用状況を記録および分析できるネット...

Rubick (electron オープンソース プラグイン ツールボックスに基づく) v4.3.2 中国語グリーン バージョン

Rubick は、Electron をベースにしたオープン ソース ツールボックスであり、豊富なプラ...