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

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

推薦する

Tomcat は、Springboot プロジェクトの WAR パッケージの起動時にエラーを報告します: 子の起動時にエラーが発生しました

今日、会社の Springboot プロジェクトは、テストのためにテスト サーバーにデプロイする準備...

VMware + Ubuntu18.04 による Hadoop クラスタ環境の構築に関するグラフィック チュートリアル

目次序文VMware クローン仮想マシン (準備、3 台の仮想マシンのクローン、1 台のマスター、2...

Vue 3 で Vue Router リンクを拡張する方法

序文<router-link> タグは、Vue アプリ内のさまざまなページ間を移動するた...

CentOS7 での mysql 5.7.23 のバイナリ インストール

インターネット上のインストール情報は不均一で、落とし穴だらけです。インストールにはかなりの労力がかか...

nginx をプロキシ キャッシュとして使用する方法

キャッシュを使用する目的は、バックエンドの負荷を軽減し、Web サイトの同時実行性を向上させることで...

nginx がアップストリーム アドレスにジャンプしない問題の解決方法

序文今日、nginx で非常に奇妙な問題に遭遇しました。フロントエンドの tomcat がページにジ...

Vueはシンプルなショッピングカートの例を実装します

この記事では、参考までに、Vue の具体的なコードを共有して、簡単なショッピングカートを実装します。...

数百万のデータボリュームに対する MySQL ページングクエリ方法とその最適化の提案

データベース SQL の最適化はよくある問題です。何百万ものデータ ボリュームに対してページング ク...

JavaScript は、マウスがテーブル行を通過するときに色の識別を実装します。

この記事では、マウスがテーブルの行を通過するときにJavaScriptを使用して色ラベルを表示する方...

HTML タグのネスト規則の紹介

XHTML タグには、div、ul、li、dl、dt、dd、h1~h6、p、a、addressa、s...

グリッド共通レイアウトの実装

両側に隙間なし、各列間に隙間あり 幅: 100%; 表示: グリッド; グリッドテンプレート列: r...

CSS で隠し要素を実現する 7 つの興味深い方法

序文非表示要素の 3 つの属性である表示、可視性、不透明度の類似点と相違点は、フロントエンドの就職面...

Zabbixを使用してOracleテーブルスペースの操作プロセスを監視する

0. 概要Zabbix は非常に強力なオープンソースの監視ツールです。以下では、Zabbix がテー...

Linux ソースコードの解析 epoll

目次1. はじめに2. シンプルなepollの例2.1、epoll_create 2.2、構造体イベ...