異なるドメイン名への PC または携帯電話のアクセスを区別するように Nginx を構成する方法

異なるドメイン名への PC または携帯電話のアクセスを区別するように Nginx を構成する方法

新しい公式サイトはオンラインですが、携帯電話で新しい公式サイトにアクセスすると、エクスペリエンスが非常に悪くなります。携帯電話で新しい公式サイトにアクセスする場合は、古い公式サイトにアクセスする必要があります。Nginx の設定を変更することで、自動ジャンプを実現できます。

まず、新しい公式サイトのNginx設定ファイルにジャンプ判定を追加し、ユーザーエージェントを使用してソースがモバイル端末かPC端末かを判別します。

サーバー{
  聞く 80;
  server_name www.7d.com 7d.com; // 新しい公式ウェブサイトのドメイン名の書き換え .* https://$host$request_uri last;
}

サーバー{
  443 ssl を聴く;
  server_name www.7d.com 7d.com; // 新しい公式ウェブサイトのドメイン名 root /data/7d;
  文字セット utf-8;
  ssl_certificate /usr/local/nginx/_.7d.com.crt;
  ssl_certificate_key /usr/local/nginx/_.7d.com.key;

  /s1$ http://s1.7d.com/start を最後に書き換えます。

  if ( $http_user_agent ~* "(Android|iPhone|Windows Phone|UC|Kindle)" ){ // リダイレクト判定書き換え ^/(.*)$ https://m.7d.com$uri redirect; // リダイレクトとは302リダイレクト(一時転送)のこと 
  }   
  …
}

その後、古い公式サイトの設定ファイルを新しいドメイン名に変更します。モバイルアクセスのリクエストでない場合は、新しい公式サイトにジャンプするためのジャンプ判断も必要です。

 サーバー{
  聞く 80;
  server_name m.7d.com; // 古い公式ウェブサイトのドメイン名の書き換え .* https://$host$request_uri last;
}

サーバー{
  443 ssl を聴く;
  server_name m.7d.com; // 古い公式ウェブサイトのドメイン名 root /data/7d;
  文字セット utf-8;
  ssl_certificate /usr/local/nginx/_.7d.com.crt;
  ssl_certificate_key /usr/local/nginx/_.7d.com.key;

  /s1$ http://s1.7d.com/start を最後に書き換えます。

  if ( $http_user_agent !~* "(Android|iPhone|Windows Phone|UC|Kindle)" ){ // ~ の前に ! を追加します。モバイル端末からアクセスしない場合は、新しい公式ウェブサイトに戻ります。
    書き換え ^/(.*)$ https://m.7d.com$uri redirect; // リダイレクトは 302 リダイレクトを意味します}   
  …
}

このように、携帯電話が新しい公式サイト 7d.com のドメイン名にアクセスすると、実際には古い公式サイトのコンテンツにアクセスすることになります。ブラウザのアドレスバーをクリックすると、ドメイン名が m.7d.com であることがわかります。

実際は、HTTP_USER_AGENT を元に判断し、Nginx を使って 302 ジャンプをします。書き換え文の最後の単語の redirect を permanent に変更すると、301 ジャンプ(恒久転送)を意味します。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • マルチポートおよびマルチドメイン名アクセスのNginx構成の実装
  • nginx での tp5 の設定アクセスを変更する問題を解決する
  • 同じ IP のアクセス頻度を制限するように nginx を設定する方法
  • nginx ssl を設定して https アクセスを実装する手順 (初心者向け)
  • Nginxのアクセス制限設定の詳細な説明
  • SSL モジュール構成を使用して HTTPS アクセスをサポートする nginx の詳細な説明
  • nginx を使用して wgcloud へのアクセスを構成する方法

<<:  N キロメートル以内のデータを検索する MySQL の簡単な例

>>:  vueはEle.me UIを使用してteambitionのフィルタリング機能を模倣します

推薦する

jQueryはすべてのショッピングカート機能を実装します

目次1. すべて選択2. 商品の数量を増やすか減らす3. 商品の小計を変更する4. 合計と合計額を計...

MySQL 学習 (VII): Innodb ストレージ エンジン インデックスの実装原理の詳細説明

概要データベースでは、ツリー ディレクトリと同様に、インデックスを使用してデータ検索を高速化します。...

MySQL 5.7.31 64 ビット無料インストール版チュートリアル図

1. ダウンロードダウンロードアドレス: https://dev.mysql.com/get/Dow...

クロスブラウザローカルストレージⅠ

原文: http://www.planabc.net/2008/08/05/userdata_beh...

MIME エンコーディングの概要 (オンライン情報と実際の経験から統合)

1. MIME: 多目的インターネットメール拡張インペリアル カレッジ オブ コンピュータ オンラ...

dockerを使用してGrafana+Prometheus構成をデプロイする

docker-compose-monitor.yml バージョン: '2' ネットワ...

ウェブページを開いて数秒後に他のページにリダイレクトする

これを実現するには、次のコードを追加するだけです。方法1: メタを使用する使用方法: <Met...

JS デコレータ パターンと TypeScript デコレータ

目次デコレータパターンの紹介TypeScript のデコレータデコレータの使用デコレーターファクトリ...

Angular環境構築と簡単な体験のまとめ

Angular入門Angular は、Google が開発したオープンソースの Web フロントエン...

Linux システムが VMware にインストールされているかどうかを確認する方法

現在の Linux システムが VMware にインストールされているかどうかを確認する方法を教えて...

js を使用して QR コードを生成するサンプル コード

以前、プロジェクトでQRコードをスキャンして情報を表示する機能を開発する必要がありました。インターネ...

Ubuntu ブート自動起動サービス設定

Ubuntu でサービスを作成し、自動的に起動する方法: 1. [/lib/systemd/syst...

ソースコードの観点からキープアライブコンポーネントのキャッシュ原理に答える

今日は、早速本題に入り、面接中に尋ねられた質問、つまりキープアライブ コンポーネントのキャッシュ原理...

HTML の基本的な使用法には、リンク、スタイルシート、span、div などが含まれます。

1. リンクハイパーテキスト リンクは HTML において非常に重要です。基本的な形式は次のとおりで...