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のルートパスワードをリセットするための最適なソリューション

推薦する

MySQL ストアド プロシージャの原理と使用法の詳細な説明

この記事では、例を使用して、MySQL ストアド プロシージャの原理と使用方法を説明します。ご参考ま...

Ubuntu 20.04 に MySql5.7 をインストールして構成するための詳細なチュートリアル

目次1. Ubuntuソースの変更2. MySQLをインストールする3. 新しいユーザーを作成し、権...

Linux におけるシステム入出力管理の詳細な説明

システムの入力と出力の管理1. システムの入力と出力を理解するLinuxシステムでは、1は正しい出力...

データベースの水平セグメンテーションを実装するための2つのアイデア

導入インターネット アプリケーションの普及に伴い、膨大なデータの保存とアクセスがシステム設計における...

きちんとしたHTMLマークアップを使用してページを構築します

インターネットは絶えず進化する有機体です。長期にわたってインターネットの発展に適応できるページを構築...

MySQLデータベースが予期せずクラッシュし、テーブルデータファイルが破損して起動できなくなる問題を解決します。

問題: MySQL データベースが予期せずクラッシュしたため、データベースを起動できませんでした。エ...

Linux での nginx のインストール、展開、使用方法の詳細な説明

目次1. ダウンロード2. 展開3. Nginxログ関連の設定4. ファイルダウンローダーとして n...

MySQL Innodbの主な機能挿入バッファ

目次挿入バッファとは何ですか?挿入バッファのトリガー条件は何ですか?なぜ一意のインデックスにできない...

CSS3 テキストシャドウ text-shadow プロパティの詳細な説明

テキストシャドウ text-shadow プロパティの効果: 1. 右下隅の影、左下隅の影、左上隅の...

ECMAScript6 におけるマップマッピングの基本概念と一般的な方法

目次マッピングとは何かオブジェクトとマップの違いマップの共通メソッド宣言と初期化割り当てセットキー値...

CSS ボックスの折りたたみに対する 5 つの解決策

まず、ボックスコラプスとは何でしょうか?親ボックスの内側にあるべき要素が外側にあります。第二に、箱は...

MySQL の count 関数の正しい使い方の詳細な説明

1. 説明MySQLでは、テーブル内の行の総数を取得する必要がある場合、通常は次の文を使用します。 ...

MySQLストレージフィールドタイプのクエリ効率についての簡単な理解

検索パフォーマンスは最速から最遅まで次のとおりです (私が聞いたところによると)。 1 番目: ti...

React仮想リストの実装

目次1. 背景2. バーチャルリストとは何か3. 関連概念の紹介4. 仮想リストの実装4.1 ドライ...

Ubuntu 20.04 Firefox でビデオを再生できない (Flash プラグインがない) 場合の解決策

1. Flashプラグインパッケージのダウンロードアドレス: https://get.adobe.c...