nginx rewriteを使用してURLをリダイレクトする方法

nginx rewriteを使用してURLをリダイレクトする方法

最近仕事でnginxの設定を変更する必要が頻繁にあり、nginxでrewriteを使用する方法を学びました

URLリダイレクト

ここで言う URL リダイレクトとは、ユーザーが URL にアクセスしたときに別の URL にリダイレクトされることを意味します。

一般的なアプリケーション シナリオは、複数のドメイン名を同じ URL にリダイレクトすることです (たとえば、古いドメイン名を新しいドメイン名にリダイレクトします)。

静的ファイルリクエストを CDN などにリダイレクトします。

ユーザーのデバイスに応じて、異なるサイト(PC版、WAP版)等にジャンプします。

URLリダイレクトは、jsを通じてページにwindow.locationを設定することで実現できます。

PHPでヘッダーを設定することでも実現できます

もちろん、nginxの書き換え機能を使って実現することもできます。

nginx 書き換えモジュール

rewriteはnginxの静的書き換えモジュールです

基本的な使用法は、パターンの書き換えとフラグの置き換えです。

patten は正規表現です。patten に一致する URL は replace として書き換えられます。flag はオプションです。

たとえば、古いドメイン名を新しいドメイン名にリダイレクトする

サーバ
{
 聞く 80;
 サーバー名 www.old.com;
 「.*」をhttp://www.new.comに書き換えます。
}

新しいドメインにリダイレクトするときにパスを維持する

サーバ
{
 聞く 80;
 サーバー名 www.old.com;
 「^/(.*)$」を書き換える http://www.new.com/$1;
}
書き換えとロケーションが連携して画像ファイルを CDN にジャンプします
場所 ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
 有効期限は30日です。
 "^/uploadfile\/(.*)$" http://static.XXX.com/uploadfile/$1 を書き換えます。
}

書き換え後にフラグを追加できます。フラグ タグは次のとおりです。

lastはApacheの[L]マークに相当し、書き換えが完了したことを示します。

break はマッチを終了し、次のルールにマッチしなくなります。

リダイレクトは 302 一時リダイレクトを返します。アドレス バーにはリダイレクトされたアドレスが表示されます。

永久リターン301永久リダイレクトアドレスバーにはジャンプ後のアドレスが表示されます

nginx rewrite を使用して URL リダイレクトを実現する上記の方法は、私が皆さんに共有できるすべてです。これが皆さんの参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Nginxの書き換えモジュールの詳細な説明
  • Nginx URL 書き換えメカニズムの原理と使用例
  • Nginx の書き換え正規マッチング書き換え方法の例
  • nginx のロケーションと書き換えの使用法の詳細な説明
  • URLパラメータに応じたnginxの書き換えと場所の詳細な説明
  • Nginx 書き換え 書き換えの基本と例の共有
  • Nginx Rewrite ルールと使用方法の紹介とスキルの例
  • nginx の書き換え擬似静的設定パラメータと使用例
  • nginx 書き換え関数の使用シナリオの分析

<<:  MySQL 5.7.23 のインストールと設定のグラフィックチュートリアル

>>:  JavaScript はクラス宝くじアプレットを実装します

推薦する

JavaScript キャンバスは影付きのグラフィックとテキストを実装します

キャンバスを使用して、参照用の影付きのグラフィックとテキストを作成します。具体的な内容は次のとおりで...

各 Nginx プロセスで開くことができるファイルの最大数を設定する方法

1. システム内で開いているファイルの最大数を確認する #現在のリソース制限設定を表示する ulim...

インタビュアーはCSSで固定アスペクト比を実現する方法を尋ねました

この質問に関連するニーズはまだないかもしれませんし、面接でこの質問をされたことがないかもしれませんが...

フロントエンド開発に必要な共通ツール機能のまとめ

1. 時刻の書式設定とその他の方法moment.jsライブラリファイルの使用をお勧めします2. テン...

LAMP ソースコードを使用したエンタープライズレベルのインストールチュートリアル

目次LAMPアーキテクチャ1.ランプの紹介2. WebサービスワークフローWebサーバーのリソースは...

Linux 向けの強化されたスクリーンショットと共有ツール: ScreenCloud

ScreenCloud は、必要だとは思わなかった素晴らしい小さなアプリです。デスクトップ Lin...

Amap を使用した React 実装例 (react-amap)

React の PC 版は Amap を使用するようにリファクタリングされました。情報を検索したと...

Linux ファイアウォール設定の詳細な手順 (yum ウェアハウス設定に基づく)

序文この実験では、デバッグ用に2つの仮想マシン(CentOs6とRed Hat 6)を準備します。 ...

MySQLクエリ最適化プロセスを理解する

目次パーサーとプリプロセッサクエリオプティマイザーMySQL クエリの最適化には、解析、前処理、最適...

WEB 標準ウェブページ構造

背景画像でも、ページ上のテキストサイズでも、1 ピクセルの違いは非常に明白です。そして、私は学生時代...

Mysql関数呼び出しの最適化の詳細な説明

目次関数呼び出しの最適化関数呼び出しの最適化MySQL 関数は、内部的に決定論的または非決定論的とし...

MySQLの文字列インターセプト関連関数の概要

この記事では、MySQL の文字列インターセプト関連の機能を紹介します。具体的な内容は以下のとおりで...

Dockerボリュームマウントの実装方法

最も単純な hello world 出力イメージを作成することは最も簡単なスタートですが、実行中のコ...

Dockerを使用してNextCloudネットワークディスクを展開する方法

NextCloud コンピュータ上の任意のファイルやフォルダを共有し、NextCloud サーバーと...

VueはPCカメラを呼び出して写真機能を実現します

この記事の例では、VueがPCカメラを呼び出して写真機能を実現する具体的なコードを参考までに共有して...