nginxディレクトリパスをリダイレクトする方法

nginxディレクトリパスをリダイレクトする方法

ドメイン名に続くパスがデフォルトの Web ディレクトリではなく、ローカル ディスク上の他のディレクトリを指すようにしたい場合は、nginx ディレクトリ アクセス リダイレクトを設定する必要があります。適用シナリオ: dashidan.com/image は自動的に dashidan.com/folderName/image にジャンプします。nginx ディレクトリ パス リダイレクトを実装するには、4 つの方法があります。ルート マッピングを変更する、Nginx 書き換えによって内部的にリダイレクトする、エイリアス マッピングを設定する、nginx の永続的な 301 絶対リダイレクトによって実装する、です。

1 nginxはルートマッピングを変更する

ルート マッピングを変更して nginx ディレクトリ アクセスをリダイレクトするのが最も簡単な方法であり、推奨されます。

場所 / 画像 {
 ルート /フォルダ名;
}

2 nginx rewrite内部ジャンプによるアクセスリダイレクト

Nginx 構成コードの例:

場所 / 画像 {
 ^/image/(.*)$ /folderName/image/$1 を最後に書き換えます。
}

3 nginxエイリアスマッピングの実装

設定例:

場所 / 画像 {
 alias /folderName/image; #ここに絶対パスを記入してください}

4. nginxの永続的な301絶対リダイレクトを通じて実装

設定例:

場所 / 画像 {
 ^/image/(.*)$ http://dashidan.com/folderName/image/$1 を書き換えます。
}

5. URIを判断してページをリダイレクトする

設定例:

$request_uri の場合、
 ^/image/(.*)$ /folderName/image/$1 を最後に書き換えます。
}

nginx ロケーションマッチングルール

位置マッチングコマンド

~ #波線は通常の一致を示し、大文字と小文字が区別されます
~* # は大文字と小文字を区別せずに通常の一致を実行することを示します
^~ #^~ は通常の文字の一致を示します。このオプションが一致する場合、このオプションのみが一致し、他のオプションは一致しません。通常はディレクトリの一致に使用されます。
= # 共通文字の完全一致を実行します
@ #"@" は、error_page、try_files などの内部ターゲットに使用される名前付き場所を定義します。

  1. = プレフィックスはこのクエリと完全に一致します。見つかった場合は検索を中止します。
  2. 残りのすべての通常の文字列の中で、最も長い一致。この一致の前に ^~ が付いている場合、検索は停止します。
  3. 構成ファイルで定義された順序での正規表現。
  4. ルール 3 が一致した場合は、その結果が使用されます。それ以外の場合は、ルール 2 と同じルールが使用されます。

場所のマッチングの優先順位(設定ファイル内の場所の順序に関係なく)

= 完全一致が最初に処理されます。完全一致が見つかった場合、nginx はそれ以上の一致の検索を停止します。

通常の文字マッチング、正規表現ルール、長いブロックルールはクエリマッチングよりも優先されます。つまり、アイテムが一致する場合、正規表現の一致とより長い一致があるかどうかを確認する必要があります。

^~ はこのルールにのみ一致するため、nginx は他の一致の検索を停止します。それ以外の場合、nginx は他の場所の指示の処理を続行します。

最後に、「~」と「~*」を含む命令が一致します。対応する一致が見つかった場合、nginx は他の一致の検索を停止します。正規表現がない場合、または正規表現が一致しない場合は、一致度が最も高い逐語的一致命令が使用されます。

場所 = / {
 # 「/」のみに一致します。
 [ 構成A ] 
}
位置 / {
 # すべてのリクエストは "/" で始まるため、どのリクエストにも一致します。# ただし、より長い文字の一致または正規表現の一致が優先されます [ 構成 B ] 
}
場所 ^~ /images/ {
 # /images/ で始まるリクエストに一致し、他の場所との一致は停止します
 [ 構成 C ] 
}
場所 ~* \.(gif|jpg|jpeg)$ {
 # gif、jpg、またはjpegで終わるリクエストに一致します。 
 # ただし、/images/ ディレクトリへのすべてのリクエストは [構成 C] によって処理されます。 
 [ 構成 D ] 
}

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

以下もご興味があるかもしれません:
  • nginx 設定 URL リダイレクト - リバース プロキシの詳細な説明
  • Nginxのリダイレクト機能の詳しい説明
  • ngin 構成で 301 リダイレクトを設定する方法と nginx サブディレクトリで 301 リダイレクトを設定する方法
  • システムメンテナンスページにリダイレクトするように nginx を設定する

<<:  MySQL 5.7.10 winx64 のインストールと設定方法のグラフィック チュートリアル (win10)

>>:  WeChatアプレットは画像コントロールを選択します

推薦する

Node.js で MySQL データベースにバッチデータを挿入する方法

プロジェクト(nodejs)では、一度に複数のデータをデータベースに挿入する必要があります。データベ...

MySQL 8.0 の降順インデックス

序文インデックスが順序付けられていることは誰もが知っていると思いますが、MySQL の以前のバージョ...

HTML タグ マーキーはさまざまなスクロール効果を実現します (JS 制御なし)

ページの自動スクロール効果は JavaScript で実現できますが、今日偶然、JS 制御なしでさま...

Vue で Alibaba のアイコンフォント ベクター アイコンを使用する方法について

インターネット上には多くのインポート方法があり、公式も3つのインポート方法を提供していますが、インポ...

デザインスキルを向上させる良い方法

いわゆる才能(左脳と右脳)つまり、芸術的な才能があるかどうかは、人間の左脳と右脳の分業によって主に決...

docker-compose でデプロイしたときに MySQL にアクセスできなくなる問題の簡単な分析

Docker-ComposeとはCompose プロジェクトは、以前の fig プロジェクトから派生...

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

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

複数のパッケージソースから同時にパッケージをロードするようにnpmを設定する方法

目次1. ローカルストレージを構築する2. npmパッケージを作成し、プライベートリポジトリにアップ...

HTML で水平ナビゲーション構造を設定する方法

この記事では、主にリスト構造を使用して水平ナビゲーション構造を設定する 2 つの方法を紹介します。こ...

Docker Machineの詳細な説明

Docker と Docker Machine の違いDocker はクライアント サーバー アーキ...

Linux と Windows でスケジュールされたタスクを設定する方法

目次リナックス1. crontabの基本的な使い方2. ログを有効にする3. スケジュールされたタス...

MySQL での coalesce() の使用に関するヒントのまとめ

序文最近、偶然 MySQL の coalesce を発見しました。ちょうど時間があったので、MySQ...

Dockerを使用して分散lnmpイメージを作成する

目次1. Docker分散lnmpイメージ生成1. Nginx、MySQL、PHPコンテナを実行する...

MySQLクエリ速度が遅く、パフォーマンスが低下する原因と解決策

1. データベースクエリの速度に影響を与えるものは何ですか? 1.1 データベースクエリ速度に影響を...

Linuxでテキスト比較を実現するコツを教えます

序文コードを書く過程で、必然的にコードに何らかの変更を加えることになります。しかし、変更を加えるとき...