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

推薦する

MySQLデータベースのnullに関する知識ポイントのまとめ

MySQL データベースでは、null は一般的な状況です。MySQL での null に関する注意...

MySQL グリーンバージョン設定コードと 1067 エラーの詳細

MySQL グリーンバージョン設定コードと 1067 エラーMySQL エンコーディングを表示 &#...

DOCTYPE要素詳細説明完全版

1. 概要この記事では、DOCTYPE要素を体系的に説明します。同時に、多くの情報を調べました。イン...

WeChatアプレットのスクロールビューの改行問題を解決する

今日、小さなプログラムを書いていたときに、スクロールビューを使用したのですが、スクロールビュー内のテ...

熟練デザイナーの7つの原則(1):フォントデザイン

まあ、あなたはデザインの達人かもしれませんし、あるいはそれは大げさすぎるかもしれませんが、少なくとも...

CSS3 タイムラインアニメーション

成果を達成する html <h2>CSS3 タイムライン</h2> <...

Navicat が MySql サーバーにリモート接続できない問題の解決策

Navicat が MySql サーバーにリモート接続できない問題の解決策は、先頭に書かれています:...

React Diff Principle の詳細な分析

目次差分アルゴリズムレイヤーごとの比較同じタイプのコンポーネントを比較する同じタイプの要素の比較子ノ...

vue3 の setUp とリアクティブ関数の使用方法の詳細な説明

1. いつsetUpを実行するかvue3 ではメソッドを正常に使用できるようになったことは誰もが知っ...

ファイルをアップロードするための HTML フォームの「参照」ボタンを変更する方法

コードをコピーコードは次のとおりです。 <!DOCTYPE HTML PUBLIC "...

HTMLの基本概念の詳細な説明

HTMLとは何ですか? HTML は Web ページを記述するために使用される言語です。 •HTML...

Dockerを使用してMySQLデータベースをインストールするDeepinの詳細な説明

まずMySQLソースをクエリするdocker 検索 mysql公式ウェブサイトにアクセスしてイメージ...

モバイルフロントエンド適応ソリューション(概要)

ネットで検索してみたところ、多くの面接でモバイル適応方法について質問されることが分かりました。最近い...

VUEユニアプリ開発環境についての簡単な説明

目次1. HBuilderXビジュアルインターフェースを通じて2. vue-cliコマンドで実行する...