Nginx Httpモジュールシリーズにおけるautoindexモジュールの具体的な使用法

Nginx Httpモジュールシリーズにおけるautoindexモジュールの具体的な使用法

ブラウザ モジュールの主な機能は、http リクエスト ヘッダーの「User-Agent」の値とブラウザの特徴的な文字に基づいてブラウザが新しいか古いかを判断し、後続のリクエスト処理ロジックで使用するための対応する変数を生成することです。

1. はじめに

ngx_http_browser_module モジュールは、後続のリクエスト ロジック処理のために「User-Agent」リクエスト ヘッダーの値を判断して変数を生成します。

2. 組み込み変数のリスト

$モダンブラウザ
ブラウザが最新のブラウザとして識別された場合、これは modern_browser_value ディレクティブによって設定された値と等しくなります。

$古代ブラウザ
ブラウザが古いブラウザとして識別された場合、Ancient_browser_value ディレクティブによって設定された値と等しくなります。

$msie
ブラウザが MSIE として識別される場合、バージョンに関係なく 1 になります。

3. 設定例

最新ブラウザの識別ロジック構成:

modern_browser_value "モダン。";

# modern_brower は、どのブラウザとそのバージョンが最新のブラウザと見なされるかを指定します。設定形式については、後で modern_browser msie 5.5 で説明します。
モダンブラウザゲッコ 1.0.0;
モダンブラウザ オペラ 9.0;
モダンブラウザサファリ413;
モダンブラウザKonqueror 3.0;

 
ブラウザが最新のブラウザであると判断された場合、modern_browser 変数は、modern_browser_value によって構成される変数である「modern.」と等しくなります。
インデックス index.${modern_browser}html index.html;

古いブラウザの互換性判定:

モダンブラウザ msie 5.0;
modern_browser ゲッコ 0.9.1;
モダンブラウザ オペラ 8.0;
モダンブラウザサファリ413;
モダンブラウザKonqueror 3.0;

modern_browser はリストされていません。

# ancient_browser は、どの部分文字列が古いブラウザとして識別されるかを設定します。 ancient_browser Links Lynx netscape4;

# ブラウザが古いブラウザとして識別された場合、ancient_browser は 1 になります。ここで互換性処理を実行したり、ユーザーに最新のブラウザを更新または置き換えるよう直接促したりできます。

$ancient_browserの場合{
  ^ /ancient.html を書き直す;
}

4. 設定形式

構文: ancient_browser 文字列 ...;
デフォルト: -
コンテキスト: http、サーバー、場所

「User-Agent」ヘッダーをシード文字列で設定すると、古いブラウザとして判断されます。特別なサブ文字列「netscape4」は、正規表現 ^Mozilla/[1-4] に相当します。

構文: ancient_browser_value 文字列;
デフォルト:  
古代ブラウザの値 1;
コンテキスト: http、サーバー、場所

古いブラウザが識別されると、$ancient_browser 変数の値はデフォルトで 1 になります。

構文: modern_browser ブラウザのバージョン;
modern_browser はリストされていません。
デフォルト: -
コンテキスト: http、サーバー、場所

どのブラウザとどのバージョンを使用するかを設定すると、最新のブラウザになるように決定されます。ブラウザの値は、msie、gecko、opera、safari、konqueror です。バージョン定義の形式は、X、XX、XXX、または XXXX です。各形式の最大値は、4000、4000.99、4000.99.99、4000.99.99.99 です。

unlisted は特別な文字列です。ブラウザが modern_browser と ancient_browser の一致範囲に表示されない場合は、最新のブラウザとみなされます。それ以外の場合は、古いブラウザと見なされます。リクエスト ヘッダーに「User-Agent」ヘッダーが指定されていない場合は、一致するリストに表示されないものとみなされます。

構文: modern_browser_value 文字列;
デフォルト:  
モダンブラウザの値 1;
コンテキスト: http、サーバー、場所

最新のブラウザが識別されると、$modern_browser 変数の値はデフォルトで 1 になります。

4. まとめ

ngx_http_browser_module はブラウザ互換性の判断メカニズムを提供し、これにより、古いブラウザと新しいブラウザ間の互換性を扱う際に、よりエレガントかつ効率的になります。実際のニーズに合わせて使用​​し、ビジネス ロジックからブラウザ バージョンを抽出し、他のことを考慮せずにビジネスをよりビジネスらしくすることができます。

Nginx Http モジュール シリーズにおける autoindex モジュールの具体的な使用方法については、これで終わりです。Nginx autoindex モジュールに関するより詳しい内容については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • nginx httpモジュールのデータ保存構造の概要
  • nginx HTTPモジュール設定の一般的な手順

<<:  Nofollowはコメントやメッセージ内のリンクを本当に機能させる

>>:  MySQL 8.0.23のルートパスワードをリセットするための最適なソリューション

推薦する

JavaScript のディープコピーの落とし穴

序文以前、ある会社の面接に行ったとき、面接官から「オブジェクトを深くコピーするにはどうすればよいです...

CSS3は三角形の連続拡大効果を実現します

1. CSS3の三角形は特殊効果でズームし続けます11.1 画像プレビュー 11.2 index.h...

MySQLとRedisキャッシュ間の同期ソリューションについての簡単な説明

目次1. ソリューション 1 (UDF)デモケース2. ソリューション2(binlogの解析)キャナ...

Vue SPA ファースト スクリーン最適化ソリューション

目次序文最適化ソ連オンデマンドインポート1. ルーティングファイルでコンポーネントをオンデマンドでイ...

ネイティブJavaScriptでカルーセルを実装する

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

LinuxにMySQLをインストールし、外部ネットワークアクセスを構成する例

設定手順1. DNSが設定されているかどうかを確認するDNSが設定されていない場合は、前の記事を参照...

プログレッシブ ウェブ アプリ (PWA) の開発方法

目次概要必要とするアプリURL PWA にはどのような技術コンポーネントが必要ですか?マニフェストフ...

MySQL で最大接続数を正しく変更する 3 つの方法

MySQL データベースをインストールすると、デフォルトの MySQL データベースの最大接続数が ...

Vueはvue-quill-editorリッチテキストエディタを使用し、画像をサーバーにアップロードします。

目次1. 準備2. グローバルコンポーネント quill-editor を定義する1. テンプレート...

Centos8 でローカル Web サーバーを構築するための実装手順

1 概要システム Centos8 では、httpd を使用してローカル Web サーバーを構築します...

CSSの省略記号とパディングを組み合わせた場合の問題の詳細な説明

CSS によるテキストの切り捨てテキストを自動的に切り捨てるスタイル コードを実装するには、次のコー...

nginx でディレクトリ ホワイトリストと IP ホワイトリストを設定する方法

1. ディレクトリホワイトリストを設定する:指定されたリクエストパスに制限を設定しないでください。た...

MySQL パーティションテーブルの制限と制約の詳細な説明

ビルドを無効にするパーティション式では、次の構成はサポートされません。ストアドプロシージャ、ストアド...

vuex ベースのショッピングカート機能の実装

この記事の例では、ショッピングカート機能を実装するためのvuexの具体的なコードを参考までに共有して...

Centos7.3 での mysql5.7 のインストールと設定のチュートリアル

この記事では、MySQL 5.7のインストールと設定のチュートリアルを参考までに紹介します。具体的な...