異なるドメイン名への 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のフィルタリング機能を模倣します

推薦する

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

目次問題の説明一般的な機能効果は次のとおりです。思考分析完全なコード要約する問題の説明Teambit...

Windows サービス 2012 Alibaba Cloud サーバーで MySQL をビルドするときに msvcr100.dll ファイルが見つからないという問題を解決します

解決策1: msvcr100.dll ファイルをダウンロードし (インターネットからソース ファイル...

Webサービスのリモートデバッグとタイムアウト動作原理の分析

Webサービスのリモートデバッグ.NET では、WEBSERVICE のリモート デバッグ機能はデフ...

nginx で同時接続リクエストの数を制限する方法

導入同時接続数を制限するモジュールは http_limit_conn_module です。アドレス:...

絵文字と問題解決のためのMySQL/Javaサーバーサポートの詳細な説明

この記事では、絵文字用の MySQL Java サーバーのサポートと問題解決方法について説明します。...

MySQL アカウント情報をエレガントにバックアップする方法

序文:最近、インスタンスの移行の問題に遭遇しました。データの移行後、データベースのユーザーと権限も移...

フォーム要素の垂直方向の中央揃えに最適なソリューション

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

Vueタブとキャッシュページを切り替えるいくつかの方法

目次1. 切り替え方法2. タブを動的に生成する3. キャッシュコンポーネント3.1 キープアライブ...

MySQL に IP アドレスを効果的に保存する方法と、文字列 IP と数値を変換する方法の詳細な説明

High Performance MySQL バージョン 3 (セクション 4.1.7) を見ると、...

Ubuntu 18.04 MySQL 8.0 のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0のインストールと設定方法を参考までに紹介します。具体的な内容は以下の...

Mysql で自動増分主キー ID を更新するときに問題が発生しました

目次自動インクリメント ID を更新する理由は何ですか?質問解決方法これは私が知っている問題ですが、...

Windows での MySQL 8.0.16 のインストールと設定方法のグラフィック チュートリアル

この記事は、参考のためにMySQL 8.0.16のインストールグラフィックチュートリアルを記録してい...

Vueコンポーネントのカスタムイベントの詳細な説明

目次要約する <テンプレート> <div> 要素 <h2>{{メ...

Linux で推奨される 9 つの優れたコード比較ツールの概要

コードを書くとき、2 つのファイル間の違い、または同じファイルの異なるバージョン間の違いを知る必要が...