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 はクラス宝くじアプレットを実装します

推薦する

ウェブサイトに天気予報を挿入する方法

天気予報をウェブサイトに挿入すると、次のような効果が得られます。次のコードを挿入する必要があります:...

Docker で Redis クラスターを素早く構築する方法の例

Redis クラスターとはRedis クラスターは、R​​edis が提供する分散データベース ソリ...

2 つの MySQL ユーザー削除ステートメント (delete user と drop user) の違い

ヒント: MySQL では、ユーザーの作成と削除が頻繁に必要になります。ユーザーを作成するときは、通...

MySQL例外に対する一般的な解決策をいくつか分析する

目次序文1. コードによって設定されたデータベース名またはパスワードがローカルデータベースと一致して...

Linux または Android でファイル システムを追加する属性インターフェイスを解析する方法

最初のもの: 1. 主要なヘッダーファイルを追加します。 #include <linux/of...

古典的なスネークゲームの JavaScript 実装

この記事では、古典的なスネークゲームを実装するためのJavaScriptの具体的なコードを参考までに...

CSS の両端揃えを実現する div+css レイアウトの 4 つの方法の概要

2 端揃えを実現する div+css レイアウトは、Web ページの組版でよく使用されます。この記事...

WeChatアプレットで計算機機能を実装する

この記事は、WeChat アプレットを使用して作成された簡単な計算機です。興味のある方はご覧ください...

初心者のための HTML コーディングガイドライン 30 選

1. HTMLタグは常に閉じる前のページのソース コードでは、次のような記述がよく見られます。 &l...

Tomcat ソースコード起動コンソールの中国語文字化けのデバッグプロセス記録

問題を見つける今日はTomcatのソースコードを勉強するつもりなので、公式サイトからTomcatのソ...

MySQL 8.0.22.0 のダウンロード、インストール、設定方法のグラフィックチュートリアル

MySQL 8.0.22のダウンロード、インストール、設定方法、参考までに具体的な内容は次のとおりで...

Vue computedのキャッシュ実装原理の詳細な説明

目次計算結果を初期化する依存関係の収集アップデートを配布する総括するこの記事では、計算された初期化と...

MySQLからOracleへのリアルタイム同期ソリューションの詳細な説明

1 要件の概要MySQL5.6本番データベースの複数のテーブルのデータは、Oracle11gデータウ...

MySQL と Golan 間の従来の分散トランザクションのための 7 つのソリューション

目次1. 基本理論1.1 取引1.2 分散トランザクション2. 分散トランザクションソリューション2...

データベースインデックスの知識ポイントの概要

目次ファーストルックインデックスインデックスの概念インデックスファイルの構成インデックスの役割SQL...