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アプレットは画像コントロールを選択します

推薦する

Tomcat をサービスとして登録する際に注意すべき点のまとめ

Tomcat をサービスとして登録する場合の注意点は次のとおりです。 インターフェースを開いたら、以...

制限を使用すると、MySQL のページングがどんどん遅くなるのはなぜですか?

目次1. テスト実験2. 制限ページング問題に対するパフォーマンス最適化手法2.1 テーブルをカバー...

awk でのループの使用

同じコマンドを複数回実行するさまざまな種類のループについて学習しましょう。 awk スクリプトには、...

さまざまな環境での Docker Compose のインストール方法

1. オンラインインストール現在、Linux x86アーキテクチャのオンラインインストールのみを試し...

MySQL イベント スケジューラに関するよくある話 (必読)

概要MySQL には独自のイベント スケジューラもあり、これは Linux の crontab ジョ...

MySQL実践スキル: 2つのテーブルに異なるデータがあるかどうかを比較する方法の分析

この記事では、MySQL が 2 つのテーブルを比較して、異なるデータがあるかどうかを確認する方法を...

Nodejs は readline を使用してコンテンツ入力を促すサンプルコード

目次序文1. batがjsを実行する2. ターミナルにバージョン番号を入力してパッケージ化コマンドを...

MySQL パスワードに特殊文字が含まれている場合とコマンドラインからログインする場合

サーバーでは、データベースにすばやくログインするために、通常は mysql -hhost -uuse...

HTML タグでの this の使用法の紹介

例えば:コードをコピーコードは次のとおりです。 <html> <ヘッド> &...

MySQL 文字列インデックスのより合理的な作成ルールに関する議論

序文MySQL インデックスの使用に関しては、これまでインデックスの最左接頭辞ルール、インデックス ...

LinuxベースのLVMシームレスディスク水平拡張の詳細な説明

環境名前財産CPU 5650 円メモリ4Gディスク20G+4TB この時点で、サーバーにはすでに次の...

別の種類の「キャンセル」ボタン

「キャンセル」ボタンは必要な操作プロセスの一部ではなく、デザイン上の主要な要素として表示されません...

Flask と Vue のフロントエンドとバックエンドを分離したプロジェクト展開のサンプル コード

以前、プロジェクトを開発しました。バックエンドのインターフェースを書くために Flask フレームワ...

IDEA で Linux コマンドを使用する方法

Windows システムと比較して、Linux システムは多数の豊富なコマンドライン ツールを提供し...

Vueはシンプルなメモ帳機能を実装します

この記事では、参考までに、簡単なメモ帳機能を実装するためのVueの具体的なコードを紹介します。具体的...