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

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

推薦する

MySQL 4G メモリ サーバー構成の最適化

会社のウェブサイトのアクセス数が増えてくると(1日10万PV以上)、当然MySQLがボトルネックにな...

MySQL 正規表現 (regexp と rlike) の検索機能の例分析

この記事では、例を使用して MySQL 正規表現 (regexp および rlike) の検索機能を...

VMware15.5 インストール Ubuntu20.04 グラフィック チュートリアル

1. インストール前の準備1. 公式ウェブサイトからUbuntu 20.04のイメージファイルを直接...

ubuntu15.10 での hadoop2.7.2 の詳細なインストールと設定

Linux での Hadoop インストール チュートリアルはインターネットや書籍に多数ありますが、...

Vueはdivホイールのズームインとズームアウトを実装します

Vue プロジェクトで div ホイールのズームインとズームアウト、ドラッグ効果、キャンバス効果に似...

Win10 + Ubuntu20.04 LTS デュアルシステムブートインターフェースの美化

エフェクト表示組み込みのブートインターフェースがあまりにも醜いので、テーマをダウンロードして美しくし...

Windows 10 での MySQL 8.0 のダウンロードとインストール構成のグラフィック チュートリアル

この記事では、MySQL 8.0のダウンロードとインストールについてご紹介します。具体的な内容は以下...

vue+openlayer をベースにマップの集約と散乱効果を実現

目次序文:結果: 1.重合効果: 2. 散布効果:具体的な実装手順: 1. プロジェクトにOpenL...

dockerにros2をインストールするための詳細な手順

目次メイントピック1. UbuntuにDockerをインストールする2. DockerにROS2-F...

Linuxでシンボリックリンクを削除(削除)するコマンド

Linux では、シンボリック リンクを作成または削除する必要がある場合があります。もしそうなら、何...

MySQLが日付フィールドインデックスを使用しない理由の要約

目次背景探検する要約する背景テーブルでは、dataTime フィールドは varchar 型に設定さ...

XHTML と CSS によるオブジェクト指向プログラミング

<br />XHTML と CSS がオブジェクト指向だったらよかったのに。 。太陽は北...

win10 64 ビット システムに複数の JDK バージョンをインストールする際の切り替え問題と解決策の概要

コンピューターにmyeclipse2017とidea2017がインストールされているため、ideaが...

MySQL 5.7のワンクリックインストールとパスワードポリシーの変更方法

1.Mysqlスクリプトのワンクリックインストール [root@uat01 ~]# cat Inst...

Vueを使用してタイマー機能を実装する

この記事の例では、タイマー機能を実装するためのVueの具体的なコードを参考までに共有しています。具体...