nginx での書き換えジャンプの実装

nginx での書き換えジャンプの実装

1. 新旧ドメイン名のジャンプ

適用シナリオ: ドメイン名ベースのリダイレクト。会社の古いドメイン名は www.peihua.com です。

業務上の変更が必要な場合は、代わりに新しいドメイン名 www.zhenguo.com を使用する必要がありますが、古いドメイン名を廃止することはできません。新しいドメイン名にジャンプする必要があり、次のパラメータは変更されません

DNSを設定し、www.peihua.com(旧)とwww.zhenguo.com(新)の解決をそれぞれ設定します。

rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

(yum で nginx をインストールするには公式ソースが必要です)

nginxをインストールします -y
rpm -qc nginx //設定ファイルを探す

nginx設定ファイルを変更する

[root@localhost ~]# vim /etc/nginx/conf.d/default.conf 

サーバー{
  聞く 80;
  server_name www.peihua.com; #ドメイン名の変更#charset koi8-r;
  access_log /var/log/nginx/peihua.com-access.log main; #ログ変更場所 / {
    #ドメインリダイレクトif ($host = 'www.peihua.com') {
 書き換え^/(.*)$ http://www.zhenguo.com/$1 永久的;
    }
    ルート /usr/share/nginx/html;
    インデックス index.html index.htm;
  }

[root@localhost 名前]# systemctl restart nginx

ドメイン名解決の設定

yum -y インストールバインド

#メイン設定ファイル[root@localhost conf.d]を変更する# vim /etc/named.conf
オプション {
    listen-on port 53 { any; }; //anyに変更
    listen-on-v6 ポート 53 { ::1; };
    ディレクトリ "/var/named";
    ダンプファイル "/var/named/data/cache_dump.db";
    統計ファイル "/var/named/data/named_stats.txt";
    memstatistics ファイル "/var/named/data/named_mem_stats.txt";
    再帰ファイル "/var/named/data/named.recursing";
    secroots ファイル "/var/named/data/named.secroots";
    allow-query { any; }; //anyに変更

#地域設定ファイル [root@localhost conf.d] を変更します# vim /etc/named.rfc1912.zones 
ゾーン「peihua.com」IN {
    タイプマスター;
    ファイル "peihua.com.zone";
    更新を許可する {なし; };
};

ゾーン「zhenguo.com」IN {
    タイプマスター;
    ファイル "zhenguo.com.zone";
    更新を許可する {なし; };
};

#地域データファイル [root@localhost conf.d] を変更します# cd /var/named/
[root@localhost named]# cp -p named.localhost peihua.com.zone
[root@localhost 名前]# cp -p peihua.com.zone zhenguo.com.zone

[root@localhost named]# systemctl start named

ブラウザテスト

ブラウザ入力はhttp://www.peihua.com/test/1/index.phpへのアクセスをシミュレートし(このリクエストコンテンツは存在しませんが)、
http://www.zhneguo.com/test/1/index.php のヘッダーを見ると、301 が表示されています。これは、永続的なリダイレクトが達成されたことを意味し、ドメイン名の後のパラメータも正常にリダイレクトされます。

2. IPベースのアクセスリダイレクト

適用シナリオ: クライアント IP に基づくアクセス リダイレクト。たとえば、今日、会社のビジネス バージョンがリリースされました。すべてのコンテンツにアクセスするすべての IP に、固定メンテナンス ページが表示されます。会社の IP: 12.0.0.100 のみが正常にアクセスできます。

nginx設定ファイルを変更する

[root@localhost html]# vim /etc/nginx/conf.d/default.conf 

サーバー{
  聞く 80;
  サーバー名 www.peihua.com;

 #文字セット koi8-r;
  charset 'utf-8'; //中国語の文字を認識する access_log /var/log/nginx/peihua.com-access.log main;
  # IP が正当かどうかを設定します。$rewrite を true に設定します。
  #合法的なIPであるかどうかを判断する
  $remote_addr = "12.0.0.100"の場合{
 $rewrite を false に設定します。
 }
 # 不正なIPが判定されマークされる if ($rewrite = true) {
 (.+) /maintenance.html を書き換えます。
 }
 #タグに一致してサイトの場所に移動します = /maintenance.html {
 ルート /usr/share/nginx/html;
 }

maintenance.html にカスタム ページ コンテンツを追加する

[root@localhost html]# cat /usr/share/nginx/html/maintenance.html 
<h1>ウェブサイトはメンテナンス中です</h1>

ブラウザテスト

IP アドレス 12.0.0.100 を使用して http://www.peihua.com にアクセスすると、正常にアクセスできます。IP アドレス 12.0.0.99 を使用して http://www.peihua.com にアクセスすると、メンテナンス ページが表示されます。

3. 古いドメイン名に基づいて新しいドメイン名に移動し、その後にディレクトリを追加します。

適用シナリオ: 古いドメイン名に基づいて新しいドメイン名にジャンプし、その後にディレクトリを追加します。たとえば、現在のアクセスは http://bbs.peihua.com です。
ここで、このドメイン名のすべての投稿を http://www.peihua.com/bbs にリダイレクトする必要があります。ドメイン名のリダイレクト後もパラメータを変更しないでください。

nginx設定ファイルを変更する

[root@localhost 名前]# vim /etc/nginx/conf.d/default.conf 

  聞く 80;
  サーバー名 bbs.peihua.com;
  #文字セット koi8-r;
  文字セット 'utf-8';
  access_log /var/log/nginx/peihua.com-access.log メイン;
  場所 /post {
       書き換え (.+) http://www.peihua.com/bbs$1 永久;
  }

注: accp.com.zone ではホストドメイン名の解決を変更する必要があります。www を bbs に変更します。

[root@localhost named]# cd /var/named
[root@localhost 名前]# vim peihua.com.zone 
$TTL 1日
@ IN SOA @ rname.invalid. (
                    0 ; シリアル
                    1D ; 更新
                    1H;再試行
                    1W ; 期限切れ
                    3H ) ; 最小
    NS@
    127.0.0.1 です
bbs IN A 12.0.0.25

[root@localhost named]# systemctl restart named
[root@localhost 名前]# systemctl restart nginx

ブラウザアクセス

ブラウザが http://bbs.peihua.com/post/a.html にアクセスし、www.peihua.com/bbs/post/a.txt にリダイレクトされます。

4. パラメータマッチングに基づくジャンプ

アプリケーションシナリオ: パラメータの一致に基づくリダイレ​​クト。例: http://www.peihua.com/100-(100 | 200)-100.html へのアクセス
http://www.peihua.com へジャンプ

nginx設定ファイルを変更する

[root@localhost 名前]# vim /etc/nginx/conf.d/default.conf 

サーバー{
  聞く 80;
  サーバー名 www.peihua.com;
  
  #文字セット koi8-r;
  文字セット 'utf-8';
  access_log /var/log/nginx/peihua.com-access.log メイン;
  
  $request_uri ~ ^/100-(100|200)-(\d+).html$ の場合 {
     (.*) http://www.peihua.com を永久的に書き換えます。
  }

注: \dは0から9までの数字に一致します

DNSを変更し、bbsをwwwに変更します

[root@localhost 名前]# vim peihua.com.zone 
$TTL 1日
@ IN SOA @ rname.invalid. (
                    0 ; シリアル
                    1D ; 更新
                    1H;再試行
                    1W ; 期限切れ
                    3H ) ; 最小
    NS@
    127.0.0.1 です
www IN A 12.0.0.25

[root@localhost named]# systemctl restart named
[root@localhost 名前]# systemctl restart nginx

ブラウザテスト

ブラウザは http://www.peihua.com/100-200-26.html にアクセスし、www.peihua.com のホームページにリダイレクトされます。

5. phpで終わるすべてのページと特定のページに基づいてリダイレクトする

nginx設定ファイルを変更する

[root@localhost 名前]# vim /etc/nginx/conf.d/default.conf 

サーバー{
  聞く 80;
  
  サーバー名 www.peihua.com;
  #文字セット koi8-r;
  文字セット 'utf-8';
  access_log /var/log/nginx/peihua.com-access.log メイン;
  場所 ~* /upload/.*\.php$ {
    書き換え (.+) http://www.peihua.com 永久的;
  }


[root@localhost 名前]# systemctl restart nginx

ブラウザアクセス

ブラウザは http://www.peihua.com/upload/a.php にアクセスし、www.peihua.com にリダイレクトされます。

6. 特定のページ /abc/123.html に基づいてリダイレクトする

nginx設定ファイルを変更する

[root@localhost 名前]# vim /etc/nginx/conf.d/default.conf 

サーバー{
  聞く 80;
  サーバー名 www.peihua.com;

  #文字セット koi8-r;
  文字セット 'utf-8';
  access_log /var/log/nginx/peihua.com-access.log メイン;

  場所 ~* ^/abc/123.html {
    書き換え (.+) http://www.peihua.com 永久的;
  }
  
[root@localhost 名前]# systemctl restart nginx

ブラウザアクセス

ブラウザは http://www.peihua.com/abc/123.html にアクセスし、www.peihua.com にリダイレクトされます。

nginx での rewrite jump の実装に関するこの記事はこれで終わりです。より関連性の高い nginx rewrite jump コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • NGINX が https から http にジャンプするためのソリューションの詳細な説明
  • nginx rewriteを使用してURLをリダイレクトする方法
  • Nginx サーバーで HTTP 301 を www 付きのドメイン名にリダイレクトする方法
  • nginx に https アクセスを強制する方法 (http が https にジャンプします)
  • さまざまなブラウザ言語に応じて Nginx ページリダイレクトを設定する方法
  • ホームページジャンプの問題を解決するnginxの詳しい説明
  • nginx 301 リダイレクトを www 付きドメイン名にリダイレクトする詳細な説明
  • nginx がアップストリーム アドレスにジャンプしない問題の解決方法
  • nginx ロードバランシングを介して https にリダイレクトする方法
  • Nginxのmapコマンドを使用してページをリダイレクトする
  • thinkPHP 5をnginxでデプロイするときにホームページにのみリダイレクトされる問題を解決する
  • Nginx を使用して https ルートドメイン名への 301 リダイレクトを実装するためのサンプル コード
  • NginxはIP経由の直接アクセスを禁止し、カスタム500ページにリダイレクトします
  • Nginx 書き換えジャンプの適用シナリオの詳細な説明
  • nginx で HSTS を有効にしてブラウザを HTTPS アクセスにリダイレクトする方法の詳細な説明
  • Nginx におけるロケーション マッチングとリライト リダイレクトの詳細な説明
  • Nginx 隠しリダイレクト (リダイレクト後もブラウザ URL は変更されません)

<<:  MySQL の WriteSet 並列レプリケーションの簡単な分析

>>:  要素タイムラインの実装

推薦する

Vue3.0 + TypeScript + Vite初体験の詳しい説明

目次プロジェクトの作成プロジェクト構造メイン.jsアプリ.vue:設定コンポジションAPI参照反応的...

Windows 10 での mysql5.5 データベース コマンドラインの中国語文字化け問題を解決する

システムをリセットした後、かなり前にインストールした MySQL データベースのコンソール クエリで...

実務経験7年のフロントエンドスーパーバイザーによる経験共有

今日はベテランの貴重な経験を共有します。著者は技術管理の経験が7年あり、多い時は80人以上を率いてい...

MySQL データベースのインデックスとトランザクション

目次1. 索引1.1 コンセプト1.2 機能1.3 索引作成の原則1.3.1 ディスクアクセス回数を...

Vue3デスクトップアプリケーションの構築方法

この記事では、Vite を使用して Vue 3 デスクトップ プロジェクトを開発する方法について説明...

CSS3を使って歌詞進行テキストカラー塗りつぶし変更の動的効果を実装するアイデアの詳細な説明

音楽を再生すると、曲が進むにつれて歌詞が徐々に色づきます。色は単語ごとに変わるのではなく、左から右へ...

MySQL PXC は IST 送信のみで新しいノードを構築します (推奨)

需要シナリオ: 既存の PXC 環境には大量のデータがあります。新しく購入したサーバーをこのクラスタ...

Vue 開発プロジェクトで Font Awesome 5 を使用する方法

目次依存関係をインストールする構成使用1.アイコン検索ページに入る2. 使用したいアイコンの英語名を...

MySQL がエラーを報告: ファイルが見つかりません: './mysql/plugin.frm' 解決策

問題を見つける最近、仕事中に問題が見つかりました。問題は、MySQL ディスクがいっぱいだったことで...

MySQLでカーソルを宣言する方法

MySQL でカーソルを宣言する方法: 1. 変数とカーソルを宣言する 結果をvarchar(300...

FastApi+Vue+LayUIを使用してフロントエンドとバックエンドを分離するサンプルコード

目次序文プロジェクト設計後部フロントエンドプロジェクトを実行する質疑応答序文これまでの API 開発...

Docker Compose を使用して nginx のロード バランシングを実装する方法

Dockerネットワーク管理とコンテナIP設定に基づいてNginxロードバランシングを実装するすべて...

Vueのハッシュジャンプ原理の詳細な説明

目次ハッシュと履歴の違いハッシュ履歴getCurrentLocation の実装setupListe...

ファイルのアップロードの進行状況を示す React の例

目次React アップロードファイル表示の進行状況デモフロントエンドにReactアプリケーションを素...

25 div+css プログラミングのヒントとコツ

1. ul タグには、Mozilla ではデフォルトでパディング値がありますが、IE ではマージン値...