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 における一般的な配列操作

推薦する

CentOS8でのDockerの使い方の詳しい説明

1. CentOS8でのDockerのインストール カール https://download.doc...

Docker はすべてのコンテナをバッチ起動して閉じます

Dockerの場合すべてのコンテナコマンドを開始する docker を起動します $(docker ...

実務経験7年のフロントエンドスーパーバイザーによる経験共有

今日はベテランの貴重な経験を共有します。著者は技術管理の経験が7年あり、多い時は80人以上を率いてい...

ウェブページの右側に固定されたフローティングレイヤーの実装コード

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

Docker を使用した RabbitMQ 環境のデプロイの詳細な紹介

前提条件: Dockerはすでにインストールされています1. 画像を見つける(方法は2つあります) ...

Vueはスクロールバースタイルを実装します

最初はブラウザのスクロールバーのスタイルを変更して効果を実現したいと思っていましたが、情報を調べてみ...

Zabbix動的実行監視収集スクリプトの実装原理

Zabbix カスタム スクリプトを使用して監視データを収集する場合、通常、次の問題が発生します。サ...

Windows での mysql-5.7.28 のダウンロード、インストール、および構成に関する詳細なグラフィックとテキストのチュートリアル

最近MySQLデータベースのバージョンを変更する必要があり、それを記録するために記事を書きます1. ...

Select はダブルクリック dbclick イベントをサポートしていません

XML/HTML コードコンテンツをクリップボードにコピー< div クラス= "c...

Linux のインスタンスにパブリック IP アドレスを割り当てる方法

説明するこのインターフェースを呼び出すときは、次の点に注意する必要があります。パブリック IP アド...

CSS属性のマージンの理解について話す

1.マージンとは何ですか?マージンは、要素の周囲のスペースの間隔を制御するために使用され、視覚的にス...

MySQL 文字列分割の例 (区切り文字なしの文字列抽出)

区切り文字なしの文字列抽出質問の要件データベース内のフィールド値:実装効果: 1行のデータを複数行に...

MySQL でシンプルな検索エンジンを実装するためのサンプルコード

目次序文導入ngram全文パーサー全文インデックスを作成する検索方法1. 自然言語検索(自然言語モー...

WeChatアプレットのスケルトン画面の実装例

目次スケルトンスクリーンとはアプレットでスケルトン画面を生成する方法導入方法表示と非表示ユーザーエク...

tinyMCEの使い方と体験の詳細な説明

tinyMCE の使用方法の詳細な説明初期化TinyMCE を初期化するときは、ページの HEAD ...