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

推薦する

SCSS スタイルのコードを 50% 削減する 14 の実践的な経験

序文Sass は CSS3 言語の拡張機能です。Sass を使用すると、より良いスタイルシートをより...

CentOS 7 で MySQL 接続数が 214 に制限される問題の解決方法

問題を見つける最近、プロジェクトで問題が発生しました。接続が多すぎるため、「接続が多すぎます」という...

JavaScriptカルーセルの実装について

今日もとても実践的な事例です。名前を聞くだけで高度で難しそうですよね?今日はカルーセル画像の真髄を簡...

Docker 上で Redis クラスターを構築する

目次1. イメージをプルする2. Redisコンテナを作成する3. コンテナを起動するためにクラスタ...

XHTML チュートリアル: 初心者のための XHTML の基礎

<br />当サイトのオリジナルコンテンツですので、転載の際は出典を123WORDPRE...

Echatsチャートの大画面適応を実装する方法

目次説明する成し遂げるプロジェクトのディレクトリ構造は次のとおりです。効果図は以下のとおりです要約す...

Linux で yum と入力した後に -bash: /usr/bin/yum: No such file or directory という問題を解決する方法

Linuxでyumを入力すると、プロンプトが表示されます: -bash: /usr/bin/yum:...

Docker環境でMySQLを実行し、Binlogを有効にしてマスタースレーブ同期を構成する方法

同じサーバーで、Docker を使用して Mysql のマスター スレーブ同期設定をシミュレートしま...

Docker で lnmp をデプロイする詳細な手順

目次Centosイメージを取得するCentos ベースの nginx コンテナを生成するCentos...

CSSはスクロールを許可しながらスクロールバーを非表示にするためにオーバーフローを設定します

CSS は、スクロールを許可しながらスクロール バーを非表示にするために Overflow を設定し...

CSSブロッキングマージとその他の効果についての簡単な説明

非直交マージンマージンを使用するとマージが発生します次のプロパティはマージンの結合を防止します。国境...

WeChat アプレット uniapp は左スワイプによる削除効果を実現します (完全なコード)

WeChatアプレットuniappは左スワイプで削除効果を実現成果を達成する1. スワイプしてリス...

ネイティブ js でカスタム難易度のマインスイーパ ゲームを実装する

この記事の例では、マインスイーパゲームを実装するためのjsの具体的なコードを参考までに共有しています...

IDEA が MySQL データベースに接続できない問題の 6 つの解決策

この記事では、IDEA が MySQL データベースに接続できない問題に対する 6 つの解決策を主に...

分散監視システムZabbixはSNMPとJMXチャネルを使用してデータを収集します

前回の記事では、Zabbix のパッシブ、アクティブ、Web 監視に関するトピックについて学習しまし...