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 並列レプリケーションの簡単な分析

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

推薦する

HTML テーブル マークアップ チュートリアル (28): セルの境界線の色属性 BORDERCOLOR

テーブルを美しくするために、セルごとに異なる境界線の色を設定できます。基本的な構文<TD 境界...

Vueはテーブルページング機能を実装します

この記事では、テーブルページング機能を実現するためのVueの具体的なコードを例として紹介します。具体...

ウィンドウ環境で VScode を使用して仮想マシン MySQL に接続する方法

1. 仮想マシン側1. MySQLの設定ファイルを見つける:sudo vim /etc/mysql/...

Ubuntu Linuxシステムをインストールするときにハードディスクをパーティション分割する最も合理的な方法の詳細な説明

Windows または Linux オペレーティング システムをインストールするかどうかに関係なく、...

vue+tp5はシンプルなログイン機能を実現

この記事では、参考までに、簡単なログイン機能を実装するためのvue+tp5の具体的なコードを紹介しま...

OneProxy に基づいて MySQL の読み取り/書き込み分離と負荷分散を実装する

導入パート1: 冒頭に書いたOneProxy は、民間ソフトウェアによって完全に独立して開発された分...

Linux userdel コマンドの使用法

1. コマンドの紹介userdel (ユーザー削除) コマンドは、ユーザー アカウントと関連ファイル...

MySQL で大文字と小文字を区別しないように設定する方法

mysql は大文字と小文字を区別しないように設定されていますウィンドウズmysqlがインストールさ...

MySQL Installer Community 5.7.16 インストール詳細チュートリアル

この記事では、MySQL インストールの詳細なチュートリアルを記録し、全員と共有します。 1. バー...

Ubuntu 18.04 で SSH サービスをインストールして設定する方法

sshツールをインストールする1. ターミナルを開き、次のコマンドを入力します。 apt-getアッ...

TCPソケットSYNキューとAcceptキューの差異分析

まず、「LISTENING」状態の TCP ソケットには 2 つの独立したキューがあることを理解する...

MySQLが2つのテーブルを関連付ける際のエンコードの問題と解決策

Mysqlが2つのテーブルを関連付けると、次のエラーメッセージが生成されます:照合順序の不正な組み合...

Alibaba Cloud サーバーの購入とインストール方法

1. サーバーを購入するこの例では、購入したサーバーはAlibaba Cloudです。大学生はAli...

React.cloneElement の使い方の詳しい説明

目次cloneElementの役割使用シナリオ新しい小道具を追加するプロップを変更するイベントカスタ...

CSSを使用してファイルアップロードパターンを描画する

以下に示すように、あなたならどのようにそれを達成しますか: 通常、フォントアイコンを使用して中央にプ...