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 Rewrite の使用シナリオとコード例の詳細な説明
  • Nginx の書き換え正規マッチング書き換え方法の例
  • nginx のロケーションと書き換えの使用法の詳細な説明
  • nginx rewriteを使用してURLをリダイレクトする方法
  • よく使われるnginxの書き換えルールの詳細な説明
  • nginx の設定場所の概要と書き換えルールの記述の詳細な説明
  • URLパラメータに応じたnginxの書き換えと場所の詳細な説明

<<:  React+tsは二次リンク効果を実現します

>>:  MySQL でテーブルを削除する 3 つの方法 (要約)

推薦する

JavaScript で円形カルーセルを実装する

この記事では、円形カルーセルを実装するためのJavaScriptの具体的なコードを参考までに紹介しま...

Vueは動的コンポーネントを使用してTAB切り替え効果を実現します

目次問題の説明Vueの動的コンポーネントとはアプリケーションシナリオの説明実装手順ステップ 1 (新...

ウェブページを開いて数秒後に他のページにリダイレクトする

これを実現するには、次のコードを追加するだけです。方法1: メタを使用する使用方法: <Met...

vue プロジェクトで rem を使用して px を置き換える例

目次道具プラグインをインストールするプロジェクトのルートディレクトリに.postcssrc.jsファ...

MySQL での置換例の詳細な説明

MySQL での置換例の詳細な説明replace into は insert と似ていますが、rep...

MySQL 主キー ID を生成する方法 (自己増分、一意、不規則)

目次1. uuid関数を使用して、一意かつ不規則な主キーIDを生成します。 2. idの自動成長1....

CentOS6.9+Mysql5.7.18 ソースコードのインストール詳細チュートリアル

CentOS6.9+Mysql5.7.18 ソースコードのインストールでは、以下の操作を root ...

ウェブサイトの画像にグレー効果を加える3つの方法

私はグレースケールの画像の方が芸術的に見えると思うので、いつもグレースケールの画像を好んで使っていま...

Windows での MySQL 5.7.18 インストール チュートリアル

この記事では、圧縮パッケージから MySQL をインストールする方法について説明します。 1. My...

読み込み進捗バーのネイティブ JS 実装

この記事では、ネイティブ JS によって実装された動的読み込みプログレス バーの特殊効果を紹介します...

html5 の新しいメソッドを使用して JavaScript で要素クラス名を操作する方法の詳細な説明

目次1. classList属性2. 実用化以前の JavaScript では、最初にクラス属性を取...

ウェブデザイナーが知っておくべき効率的なナビゲーションデザインの3つの原則

ウェブサイトのナビゲーションを設計することは、家の基礎を築くようなものです。基礎がしっかりしていなけ...

MySQL の日付型の単一行関数コードの詳細な説明

MySQL の日付型単一行関数: CURDATE()またはCURRENT_DATE()は現在の日付を...

Ubuntu 18.04 (コミュニティ エディション) に Docker CE をインストールする方法

古いバージョンをアンインストールする以前に古いバージョンをインストールしたことがある場合は、まずそれ...

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

この記事の例では、フォーム検証機能を実装するためのjsの具体的なコードを参考までに共有しています。具...