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

推薦する

Web 開発チュートリアル クロスドメイン ソリューションの詳細な説明

序文この記事では、主にWeb開発のためのクロスドメインソリューションを紹介し、参考と学習のために共有...

MySQL で誕生日から年齢を計算する複数の方法

以前はMySQLをあまり使用していなかったため、MySQLの機能にあまり詳しくありませんでした。この...

NODE.JS を使用して WEBSERVER を作成する手順

目次Node.jsとはNodeJSをインストールするNode を使用して Hello World を...

ウェブサイトのデザイン体験のための7つの異なるカラースキーム

ウェブサイト構築におけるカラーマッチングは非常に特殊であり、ウェブサイトのテーマ、感情、雰囲気などの...

MySQL: MySQL 関数

1. 組み込み関数1. 数学関数ランド()丸め(数値) ceil(数値)階数(数値)ランダム丸め切り...

MySQLクエリが遅い理由

目次1. 遅いところはどこですか? 2. 不要なデータをクエリしましたか? 1. 不要なレコードをク...

スライド効果を実現するためのネイティブJavaScript

ページ、特にホームページを作成するときは、通常、Web サイト全体の他のメイン ページにリンクできる...

ffmpeg 中国語パラメータの説明と使用例

1. ffmpeg がビデオ ファイルをプッシュする場合、オーディオとビデオのエンコード形式は H2...

CentOS 8 に Docker をインストールする詳細なチュートリアル

1. 以前のバージョン yum 削除 docker docker-client docker-cli...

WeChatアプレットに2048ミニゲームを実装する詳細なプロセス

レンダリング サンプルコード今日は、WeChat アプレットを使用して 2048 ゲームを実装します...

CSS3を使用してオンラインライブ放送に似たキューアニメーションを実装する方法

以前、グループの友人が質問しました。つまり、ミニプログラムでユーザーがオンラインになったときに、ライ...

MySQL/MariaDB でピボット テーブルを実装する方法のサンプル コード

前回の記事では、Oracle でピボット テーブルを実装するいくつかの方法を紹介しました。今日は、同...

Vueはフィルターを使用して日付をフォーマットします

この記事では、フィルターを使用して日付をフォーマットするVueの具体的なコードを参考までに紹介します...

Mysql 5.7.19 無料インストール版 (64 ビット) の設定方法に関する詳細なチュートリアル

公式サイトから mysql-5.7.19-winx64 をダウンロードします。これはシステムの 64...

有名なウェブサイトのロゴに使われている25種類のフォントのコレクション

この記事では、25 の有名な Web サイト (Google、Yahoo、Twitter、Digg ...