Nginx Rewrite の使用シナリオとコード例の詳細な説明

Nginx Rewrite の使用シナリオとコード例の詳細な説明

Nginx Rewriteの使用シナリオ

1. URL アドレスジャンプ。たとえば、ユーザーが pm.com にアクセスすると baidu.com にリダイレクトされ、ユーザーが http 経由でアクセスすると https にリダイレクトされます。

2. URL擬似静的は、動的ページを静的ページとして表示し、動的URLアドレスの過剰なパラメータが外部に露出することを減らし、セキュリティを向上させる技術です。

3. 検索エンジンのSEO最適化は、検索エンジンへのエントリをサポートするためにURLパスに依存しています。

4. ユーザーが閲覧する URL は、より標準化された外観になり、開発者や製品担当者のニーズを満たすように調整できます。

設定構文

正規表現の置換を書き換える [フラグ];

4つの旗

last は後続の書き換え命令セットの処理を停止し、場所のスコープから抜け出して、変更された URI に一致する場所の検索を開始します。URL アドレスは変更されません。

break は後続の書き換え命令セットの処理を停止し、ロケーション スコープからジャンプせず、再検索せず、マッチングを終了し、URL アドレスは変更されません。

リダイレクトは 302 一時リダイレクトを返します。ブラウザのアドレス バーにはリダイレクトされた URL が表示され、クローラーは URL データベースを更新しません。

permanentは301パーマネントリダイレクトを返し、ブラウザのアドレスバーにはリダイレクトされたURLが表示され、クローラーはURLデータベースを更新します。

注意:lastとbreakを使用するとブラウザのアドレスは変更されませんが、redirectとpermanentを使用すると変更されます。

例えば:

場所 /abc/ {
  書き換え ^/abc/(.*) /whsir/$1 break;
  401 を返します。
}
場所 /opq/ {
  最後に ^/opq/(.*) /whsir/$1 を書き換えます。
  402 を返します。
}
場所 /whsir/ {
  403 を返します。
}

abcを入力した後、whsirの内容が一致する場合は200を返し、そうでない場合は404を返します。

opqを入力した後、whsirの内容が一致する場合は403を返し、そうでない場合は404を返します。

last と break は成功または失敗のステータス コードのみを返しますが、redirect と permanent は成功または失敗を返す前にまず 302 または 301 を返します。

よく使用される Nginx グローバル変数:

例: http://www.pm.com:99/aa/bb/test.php

$ホスト www.pm.com

$サーバーポート 99

$request_uri /aa/bb/test.php

$ドキュメントルート /pm_code

$リクエストファイル名 /pm_code/aa/bb/test.php

ケース1: 外部ジャンプ

lb01仮想マシンを開き、以前のカスタム構成ファイルを閉じて、新しい/etc/nginx/conf.d/rewrite.confを作成します。

注: ^/ は、ルートで始まるすべての URL (ここではルート ディレクトリは /pm_code、対応するドメイン名は www.pm.com) が Baidu にリダイレクトされることを意味します。

/etc/nginx/nginx.conf ファイルを変更する

エラー ログ レベルを通知に変更して、リダイレクト情報を記録できるようにします (debug、info、notice、warn、error、crit、より多くの情報が記録されます)

httpモジュールに1行追加する

rewrite_log on; (書き換えログをオンにする)

テスト

ブラウザのアドレスバーにwww.pm.comと入力すると(ホストで既に設定済み)、Baiduのホームページにリダイレクトされます。

ケース2: 内部ジャンプ

/etc/nginx/conf.d/rewrite.conf の内容を変更する

/pm_codeにファイル2.html(コンテンツ222)を作成し、ブラウザにwww.pm.com/1.htmlと入力します。

エラーログの記録を表示する

リターンの使用

上記の方法では、ブラウザのアドレスバーに 1.html が表示され、Web ページの内容は 2.html の内容になります。アドレスバーに 2.html を表示したい場合は、location の内容を return 302 /2.html; に変更するか、 .* /2.html redirect; と書き換えてください。

正規表現を使用する

例: www.pm.com/2020/* を www.pm.com/2019/* にリダイレクトします。

括弧は全体を表し、$1 は最初の括弧内の内容を表します。

http を https にリダイレクトする

注: nginx 1.14 以降では、ssl on と書く必要はありません。代わりに、listen フィールドに listen 443 ssl と書きます。

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

以下もご興味があるかもしれません:
  • Nginx URL 書き換えメカニズムの原理と使用例
  • Nginx の書き換え正規マッチング書き換え方法の例
  • nginx のロケーションと書き換えの使用法の詳細な説明
  • nginx rewriteを使用してURLをリダイレクトする方法
  • よく使われるnginxの書き換えルールの詳細な説明
  • nginx の設定場所の概要と書き換えルールの記述の詳細な説明
  • URLパラメータに応じたnginxの書き換えと場所の詳細な説明
  • Nginx Rewrite の使用シナリオと設定方法の分析

<<:  アコーディオン効果を実現するネイティブ js

>>:  MySQL ストアド プロシージャと共通関数のコード分析

推薦する

MySql でデータの重複挿入を回避する 3 つの方法

序文MySql で主キーの競合または一意キーの競合が発生した場合、挿入方法に応じてエラーを回避するた...

Docker でコンテナのポート マッピングを動的に変更する方法

前書き: Docker のポート マッピングは、多くの場合、Docker Run コマンド中に -p...

Linux で推奨される 9 つの優れたコード比較ツールの概要

コードを書くとき、2 つのファイル間の違い、または同じファイルの異なるバージョン間の違いを知る必要が...

MySQL 最適化の概要 - クエリエントリの合計数

1. COUNT(*) と COUNT(COL) COUNT(*)は通常、主キーに対してインデックス...

Vueストレージにはブール値のソリューションが含まれています

Vueはブール値でストレージを保存します今日、問題に遭遇しました。バックグラウンドから返された真偽の...

Nginx のアンチホットリンクを設定する方法

実験環境• 最小限のインストール済みの CentOS 7.3 仮想マシン• 構成: 1 コア/512...

autoconfを使用してMakefileを生成し、プロジェクトをコンパイルする手順

序文Linux では、コンパイルとリンクには Makefile を使用する必要がありますが、適切な ...

Vue はチャット ボックスで絵文字を送信する機能を実装します

vueチャットボックスで絵文字を送信し、vueインターフェースで絵文字を送信するための具体的なコード...

HTML ul および li タグを使用して画像を表示するサンプル コード

以下のコードをDreamweaverのコードエリアにコピーすると、プレビュー時に以下の画像が表示され...

LinuxテキストエディタVimの詳しい説明

Vim は強力なフルスクリーン テキスト エディターであり、Linux/UNIX で最も一般的に使用...

Centos7 に Nginx 統合 Lua サンプル コードをインストール

序文私が使用しているパソコンはMacで、OSはmacOS Mojaveです。コンピュータに仮想マシン...

Dockerのローカルイメージ作成方法の分析

コンテナと呼ばれるものは、実際には親イメージに基づいて読み取りおよび書き込み可能なファイル階層を作成...

Centos8.2 クラウド サーバー環境に Tomcat8.5 をインストールするための詳細なチュートリアル

Tomcatをインストールする前に、まずJDK環境をインストールしてくださいLinux サーバー上で...

CSS3を使用して背景画像の色を変更するさまざまな方法

CSS3 では画像の色を変更できます。これからは複数の絵をデザインする必要がなくなり、いつでも修正で...