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

推薦する

クールなバーコードエフェクトの作り方を教えます

声明:この記事では、Web ページ制作技術を使用して問題を包括的に解決するという考え方を反映して、W...

HTMLでカスタムタグを使用する方法

カスタム タグは XML ファイルと HTML ファイルで自由に使用できますが、いくつか注意すべき点...

HTML テーブル データを Json 形式に変換するサンプル コード

<table>テーブルデータをJSON形式に変換するJavaScript関数は次のとおり...

CSSスコープ(スタイル分割)の使用の概要

1. CSSスコープの使用(スタイル分割) Vue では、CSS スタイルを現在のコンポーネントでの...

MySql 8.0.11-Winxp64 (無料インストール版) ​​設定チュートリアル

1. インストールディレクトリにzipパッケージを解凍します。まず、mysql-8.0.11-win...

momentJs を使用してカウントダウン コンポーネントを作成する (サンプル コード)

今日はvueとmomentで作ったカウントダウンを紹介したいと思います。具体的な内容は以下のとおりで...

柔軟で安定した高品質の HTML および CSS コード標準を作成するためのガイド

黄金律常に同じコーディング標準セットに従ってください。同じプロジェクトに何人の人が関わっているかに関...

ウェブデザインにおけるポップアップウィンドウとフローティングレイヤーのデザイン

従来のソフトウェアから Web ウェアへの段階的な移行の傾向の中で、デザイン パターンとテクノロジは...

mysql-8.0.16 winx64 最新インストール チュートリアル (画像とテキスト付き)

最近、データベースについて学び始めました。最初にやったことは、データベースとは何か、データベースとデ...

メタビューポートはiPhoneでウェブページをフルスクリーン表示コントロールします

困り果てて、ふと、私がよく行くSinaのタッチスクリーン版はどうやって作られているのだろう?と考えま...

HTML テーブルの空白セル補完を実装する方法

私が初めて Web 開発を独学で学んだ頃は、いわゆる DIV/CSS レイアウトはなく、テーブル レ...

CSS の高さの崩壊問題の解決

1. 崩壊度が高いドキュメント フローでは、親要素の高さはデフォルトで子要素によって拡張されます。つ...

Dockerの高可用性構成の詳細な説明

Docker の作成Docker Compose は、管理対象コンテナをプロジェクト、サービス、コン...

VScode設定のリモートデバッグLinuxプログラムの問題を解決する

VScode リモートデバッグ Linux プログラムの問題について見てみましょう。具体的な内容は以...

CentOS 8 / RHEL 8 に VirtualBox 6.0 をインストールするための詳細なチュートリアル

VirtualBox は、技術者が異なる種類の複数の仮想マシン (VM) を同時に実行できるようにす...