Nginx URL 書き換えメカニズムの原理と使用例

Nginx URL 書き換えメカニズムの原理と使用例

URL 書き換えは、Web サイトの優先ドメインを決定するのに役立ちます。同じリソース ページの複数のパスの 301 リダイレクトは、URL の重みを集中させるのに役立ちます。

Nginx URL 書き換えの概要

Apache やその他の Web サービス ソフトウェアと同様に、rewrite の主な機能は URL アドレスをリダイレクトすることです。 Nginx の書き換え機能には PCRE ソフトウェアのサポートが必要です。つまり、ルールのマッチングは Perl 互換の正規表現ステートメントを通じて実行されます。デフォルトのパラメータでnginxをコンパイルすると、書き換えモジュールがサポートされますが、PCREのサポートも必要です。

rewrite は URL 書き換えを実装するためのキー命令です。regex (正規表現) 部分に従って置換にリダイレクトし、フラグタグで終了します。

書き換え構文の形式とパラメータ構文は次のとおりです。

rewrite <正規表現> <置換> [フラグ];

キーワード通常置換コンテンツフラグタグ

キーワード: キーワード error_log は変更できません

正規表現: ルールマッチングのための Perl 互換の正規表現ステートメント

置換コンテンツ: 正規表現に一致するコンテンツを置換コンテンツに置き換えます

フラグタグ: 書き換えによってサポートされるフラグタグ

フラグの説明:

  • last #このルールに一致した後、新しい場所URIルールに一致し続けます
  • break #このルールは一致した時点で終了し、後続のルールには一致しません
  • リダイレクト #302 一時的なリダイレクトを返すと、ブラウザのアドレスにはジャンプ後の URL アドレスが表示されます
  • permanent #301 永続リダイレクトを返すと、ブラウザのアドレスバーにジャンプ後の URL アドレスが表示されます。

書き換えパラメータのラベル セグメントの位置:

サーバー、場所、場合

例:

^/(.*) http://www.czlun.com/$1 を永久に書き換えます。

例:

  • rewriteは固定キーワードであり、書き換えマッチングルールの開始を示す。
  • 正規表現部分は ^/(.*) で、完全なドメイン名とそれに続くパス アドレスに一致する正規表現です。
  • 置換部分は http://www.czlun.com/$1 $1 であり、これは正規表現部分 () の内容から取得されます。一致が成功した後にジャンプする URL。
  • フラグ部分 permanent は永続的な 301 リダイレクトフラグを示し、新しい http://www.czlun.com/$1 アドレスにジャンプすることを意味します。

regex 一般的な正規表現の説明

キャラクター

説明する

\

次の文字を特殊文字、リテラル文字、または後方参照としてマークします。たとえば、「\n」は改行文字に一致し、「\$」は「$」に一致します。

^

入力文字列の先頭に一致します

$

入力文字列の末尾に一致します

*

直前の文字と 0 回以上一致します。たとえば、「ol*」は「o」や「ol」、「oll」に一致します。

+

直前の文字と 1 回以上一致します。たとえば、「ol+」は「ol」、「oll」、「oll」に一致しますが、「o」には一致しません。

?

直前の文字に 0 回または 1 回一致します。たとえば、「do(es)?」は「do」または「does」に一致します。「?」は「{0,1}」に相当します。

「\n」を除く任意の 1 文字と一致します。「\n」を含む任意の文字と一致させるには、「[.\n]」などのパターンを使用します。

(パターン)

括弧内のパターンに一致し、後で対応する一致を取得できます。$0...$9 属性は、括弧内の一致するコンテンツを取得するためによく使用されます。括弧に一致させるには、\(Content\) が必要です。

エンタープライズアプリケーションシナリオの書き換え

Nginx の書き換え機能は企業で広く使用されています。

  • u ユーザーが参照する URL を調整して、より標準化された外観にし、開発者や製品担当者のニーズを満たすことができます。
  • u 検索エンジンがウェブサイトのコンテンツをインデックスし、より良いユーザーエクスペリエンスを提供できるように、企業は動的 URL アドレスを静的アドレスとして偽装してサービスを提供します。
  • u URL が新しいドメイン名に変更されると、以前の訪問は新しいドメイン名にリダイレクトされます。たとえば、JD.comの360buy.comにアクセスすると、jd.comにリダイレクトされます。
  • u 特殊な変数、ディレクトリ、クライアント情報などに基づいて URL を調整します。

Nginx 書き換え設定プロセスの紹介

(1)書き換え文を作成する

vi conf/vhost/www.abc.com.conf

#vi 仮想ホスト設定ファイルを編集する

ファイルの内容

サーバー{
    聞く 80;
    サーバー名 abc.com;
    書き換え^/(.*) http://www.abc.com/$1 永続的;
}
サーバー{
    聞く 80;
    サーバー名 www.abc.com;
    位置 / {
        ルート /data/www/www;
        インデックス index.html index.htm;
    }
    error_log ログ/error_www.abc.com.log エラー;
    access_log ログ/access_www.abc.com.log メイン;
}

または

サーバー{
    聞く 80;
    サーバー名 abc.com www.abc.com;
    $host が 'www.abc.com' の場合
        書き換え^/(.*) http://www.abc.com/$1 永続的;
    }
    位置 / {
        ルート /data/www/www;
        インデックス index.html index.htm;
    }
    error_log ログ/error_www.abc.com.log エラー;
    access_log ログ/access_www.abc.com.log メイン;
}

(2)サービスを再起動する

確認後、再起動してください。操作は以下のとおりです。

nginx -t

#結果がOKで成功と表示されたら、再起動できます

nginx -s リロード

(3)ジャンプ効果を確認する

ブラウザを開いてabc.comにアクセスしてください

ページを開くと、URL アドレス バーの abc.com が www.abc.com になり、URL が正常に書き換えられたことが示されます。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Nginxの書き換えモジュールの詳細な説明
  • Nginx の書き換え正規マッチング書き換え方法の例
  • nginx のロケーションと書き換えの使用法の詳細な説明
  • nginx rewriteを使用してURLをリダイレクトする方法
  • URLパラメータに応じたnginxの書き換えと場所の詳細な説明
  • Nginx 書き換え 書き換えの基本と例の共有
  • Nginx Rewrite ルールと使用方法の紹介とスキルの例
  • nginx の書き換え擬似静的設定パラメータと使用例
  • nginx 書き換え関数の使用シナリオの分析

<<:  mysqldump を使用した MySql のインポートおよびエクスポート方法の概要

>>:  JavaScript における一般的な配列操作

推薦する

JavaScriptで計算機機能を実現するプロセスの詳細な説明

目次1. 電卓機能の紹介2. 計算機ページのデザイン1. ナビゲーションバー2. データ部分3. i...

ノードの対応するバージョンに関する簡単な説明 node-sass sass-loader

目次ノードのバージョンが一致しない、ノードをアップグレードまたはダウングレードするnvm を使用して...

jQueryはフォーム検証機能を実装します

jQuery フォーム検証の例 / ユーザー名、パスワード、住所、電子メールの検証を含む下記の通り ...

MySQL ロック制御同時実行方法

目次序文1. 楽観的ロックバージョンフィールドを追加する2. 悲観的ロック読み取りロック完全なテーブ...

MySQL シリーズ 9 MySQL クエリ キャッシュとインデックス

目次チュートリアルシリーズ1. MySQL アーキテクチャクエリキャッシュキャッシュされないクエリ:...

CSS3でシャトル星空のアニメーションを実現

結果: html <canvas id="スターフィールド"><...

CSS の clip-path プロパティの使用方法の詳細な説明

クリップパスの使用ポリゴン値は複数の座標点で構成されます。最初の値は x 方向、2 番目の値は y ...

MySQL マスタースレーブスイッチチャネルの問題の解決策

VIP を設定した後、アクティブ/スタンバイの切り替え中に表示されるエラー メッセージは次のとおりで...

Mysql 日付クエリの詳細な紹介

現在の日付を照会する CURRENT_DATE() を選択します。 CURDATE() を選択する;...

CSSメディアクエリのアスペクト比を小さくする方法

CSS メディア クエリには非常に便利なアスペクト比、aspect-ratio があり、幅と高さを直...

JavaScript 組み込みオブジェクトの概要

目次1. 組み込みオブジェクト2. 数学オブジェクト1. Mathオブジェクトの使用2. 指定された...

MySQLはカバーインデックスを使用してテーブルリターンを回避し、クエリを最適化します。

序文カバーリング インデックスについて説明する前に、まずそのデータ構造である B+ ツリーを理解する...

jQueryはスライディングタブを実装する

この記事では、スライドタブを実装するためのjQueryの具体的なコードを参考までに紹介します。具体的...

期間限定フラッシュセール機能を実装するJavaScript

この記事では、期間限定フラッシュセール機能を実装するためのJavaScriptの具体的なコードを参考...

検索ボックスと検索ボタンの境界線が重なり合わない問題を解決

今日、Baiduのページで練習していたところ、検索ボックスとボタンの余白とパディングの値が0に設定さ...