Nginx を使用して https ルートドメイン名への 301 リダイレクトを実装するためのサンプル コード

Nginx を使用して https ルートドメイン名への 301 リダイレクトを実装するためのサンプル コード

SEO とセキュリティを考慮して、301 リダイレクトが必要です。以下の一般的な処理には Nginx が使用されます。

成果を達成する

以下のアドレスは、https://chanvinxiao.com のルートドメイン名にリダイレクトする必要があります。

  • http://chanvinxiao.com (http は www なし)
  • http://www.chanvinxiao.com (http と www の組み合わせ)
  • https://www.chanvinxiao.com (https + www)

301と302の違い

301は永続的なリダイレクト、302は一時的なリダイレクトです。主な違いは検索エンジンがそれをどのように扱うかです。

  1. 301: 検索エンジンは重みとPR値を転送します
  2. 302: 検索エンジンは追加の処理を実行しません

検索エンジンに元のアドレスが存在しないと認識させ、新しいアドレスに完全に転送させたいので、301を使用します。

http から https へジャンプ

最も簡単な方法は、サーバーで直接リダイレクトアドレスを返し、途中に 301 ステータスコードを追加することです (そうでない場合、デフォルトは 302 です)

サーバー{
 聞く 80;
 301 https://$host$request_uri を返します。
}
  • return と rewrite はどちらも Nginx の rewrite モジュールの命令に属します。ここではパスを変更する必要がないため、return を使用する方が便利です。
  • $host と $request_uri は、Nginx http モジュールの埋め込み変数です。2 つの変数を組み合わせると、リクエスト内の http:// を削除した結果と同じになります。

wwwはルートドメイン名にジャンプします

これはhttpsでのみ処理する必要があります。なぜなら、すべてのhttpはhttpsにジャンプするからです。

サーバー{
 443 ssl を聴く;
 サーバー名 ~^(?<www>www\.)?(.+)$;
 もし $www であれば
 301 https://$2$request_uri を返します。
 }
...
  • ここでは、server_name の正規表現マッチング機能を使用します。値の前に ~ を追加することで有効にできます。PCRE 構文をサポートしています。
  • 正規表現は、www. というプレフィックスがあるかどうかを確認し、ルートドメイン名をキャプチャするために使用されます。2つの変数が生成されます。1つは名前付きキャプチャ変数 $www で、もう1つは数値キャプチャ変数 $2 です。
  • 連続キャプチャ変数の使用をサポートしていない場合、エラーが報告されます(不明な「1」変数)。そのため、?<www> が追加され、$1 の値が $www に割り当てられます。

ジャンプの回数を減らす

上記の設定は要件を満たしていますが、欠陥があります。http://www.chanvinxiao.com は最初に https://www.chanvinxiao.com にジャンプし、次に https://chanvinxiao.com にジャンプします。2 回目のジャンプは、最初のジャンプほど良くありません。したがって、1 つのステップで実行することをお勧めします。http 構成を次のように変更します。

サーバー{
 聞く 80;
 サーバー名 ~^(?:www\.)?(.+)$;
 301 https://$1$request_uri を返します。
}

httpに対応するサーバーで、server_nameを通常モードに変更し、$hostを取得したルートドメイン名$1に置き換えます。
wwwはここでは直接破棄されるので、キャプチャする必要はありません。キャプチャせずにグループ化のみを行うことを示すには?:を使用します。そのため、背後のルートドメイン名は$1になります。
その結果、元のドメイン名に www が含まれているかどうかに関係なく、www なしの https ルート ドメイン名にリダイレクトされます。

要約する

上記の構成では特定のドメイン名は必要ないため、互換性と移植性に便利です。Nginx の次の機能を使用します。

  • server_name の正規表現マッチング
  • 戻り命令はステータスコードとアドレスを受け取る
  • $host および $request_uri 埋め込み変数

Nginx を使用して https ルートドメイン名への 301 リダイレクトを実装する方法に関するこの記事はこれで終わりです。Nginx による https ルートドメイン名への 301 リダイレクトに関する関連コンテンツの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • NGINX が https から http にジャンプするためのソリューションの詳細な説明
  • nginx rewriteを使用してURLをリダイレクトする方法
  • Nginx サーバーで HTTP 301 を www 付きのドメイン名にリダイレクトする方法
  • nginx に https アクセスを強制する方法 (http が https にジャンプします)
  • さまざまなブラウザ言語に応じて Nginx ページリダイレクトを設定する方法
  • ホームページジャンプの問題を解決するnginxの詳しい説明
  • nginx 301 リダイレクトを www 付きドメイン名にリダイレクトする詳細な説明
  • nginx がアップストリーム アドレスにジャンプしない問題の解決方法
  • nginx ロードバランシングを介して https にリダイレクトする方法
  • Nginxのmapコマンドを使用してページをリダイレクトする
  • thinkPHP 5をnginxでデプロイするときにホームページにのみリダイレクトされる問題を解決する
  • NginxはIP経由の直接アクセスを禁止し、カスタム500ページにリダイレクトします
  • Nginx 書き換えジャンプの適用シナリオの詳細な説明
  • nginx で HSTS を有効にしてブラウザを HTTPS アクセスにリダイレクトする方法の詳細な説明
  • nginx での書き換えジャンプの実装
  • Nginx におけるロケーション マッチングとリライト リダイレクトの詳細な説明
  • Nginx 隠しリダイレクト (リダイレクト後もブラウザ URL は変更されません)

<<:  jQuery カスタム虫眼鏡効果

>>:  Vueは虫眼鏡付きの検索ボックスを実装します

推薦する

Linux のソフトリンクとハードリンクの詳細な説明

目次1. ファイルとディレクトリの基本的な保存2. Inコマンドの紹介(1)lnコマンドの基本情報を...

CSS 位置プロパティが絶対の場合のパーセンテージ値の計算

位置が絶対の場合、関連する属性のパーセンテージは、参照先の要素 (包含ブロック) を基準として計算さ...

優れたウェブフロントエンドデザインの指標

Web ページのアクセシビリティは、フロントエンドでのみ評価および実装できるもののようです。ユーザビ...

mysql5.7 リモート アクセス設定

mysql5.7 でリモート アクセスを設定することは、ユーザーを作成して権限を付与するだけでアクセ...

Windows での MySQL 8.0.15 の詳細なインストールと使用のチュートリアル

この記事では、MySQL 8.0.15の詳細なインストールと使用方法のチュートリアルを参考までに紹介...

iFrameは背景を覆うポップアップレイヤーとして使うのに最適です

最近、私は「ぶどうコレクション」というプロジェクトに取り組んでいます。簡単に言うと、Budou ペー...

レスポンシブ原則と Vue2.0/3.0 の違いについての簡単な分析

序文vue3.0 が正式にリリースされて以来、多くの友人が vue3.0 に切り替えました。ここでは...

XHTML 入門チュートリアル: XHTML ハイパーリンク

ハイパーリンクはインターネット全体を接続していると言っても過言ではありません。ハイパーリンクは、別の...

MySQL の group by に関する簡単な説明

目次1. はじめに2. ユーザーテーブルを準備する2.1 グループ化ルール2.2 グループの使用2....

JSはオンラインでのアナウンスのスクロール効果を実現します

この記事では、オンラインアナウンスのスクロール効果を実現するためのJSの具体的なコードを参考までに共...

Webフロントエンドベクターアイコンの使い方

序文フロントエンドページを書くとき、小さなアイコンなどの画像を使うことが多いです。画像を使うとコード...

MySQL クエリのソートとクエリ集計関数の使用法の分析

この記事では、例を使用して、MySQL クエリのソート関数とクエリ集計関数の使用方法を説明します。ご...

MySQL 5.7 のインストールと設定の詳細な手順

1. MySQLをダウンロードする1. MySQLの公式ウェブサイトにログインし、64ビットシステム...

MySQL 5.6 のインストール手順(画像とテキスト付き)

MySQL はオープンソースの小規模リレーショナル データベース管理システムです。現在、MySQL...