63927


マルチサイト化したwordpressサイトを表示させる方法を知りたいです。

例えば、同じサーバーの中にマルチサイトを利用して、2つのwordpressサイトを作ります。

  * A：sample.com 
  * B：sample.com/en

最初のアクセスに利用するドメインは、Aのsample.comのみで、

  * 日本からのアクセスの場合→A：sample.com 
  * 海外からのアクセスの場合（またはブラウザの検索条件を日本語以外にしている場合）→B：sample.com/en

というように、1つのURLのみの使用で、アクセス元やブラウザーの条件によって、A、Bへアクセスが変わるようにしたいのですが、

  * このような方法は可能でしょうか？
  * また、可能な場合どのような方法で対応できるでしょうか？

ご存じの方おりましたら、ご教授いただけないでしょうか？

◆環境  
CentOS (7 x86_64)  
Apache (2.4.6 CentOS)  
PHP (7.1.33)  
wordpress(5.2.5)


CC BY-SA 4.0
2020-03-15T10:58:16.337
63863
2020-03-17T08:12:19.520
2020-03-16T08:48:42.630
36988
36988
question
apache wordpress
マルチサイト化した複数のwordpressサイトを、アクセス元の国によって切り替えて表示する方法を知りたい


いくつかの方法が考えられますが、例えば GeoIP などのIPアドレスを元に判別する場合でも、 **アクセス元の国** と **利用者が理解できる言語**
とが必ずしも一致しないケースを考慮する必要があります。  
(旅行や出張で海外にいる、VPNを利用している etc..)

現実的には環境変数 `HTTP_ACCEPT_LANGUAGE` からブラウザの優先言語を取得して、webページ側で振り分けるのがよさそうです。

例えば PHP であれば、以下のようなコードでブラウザの優先言語を取得できるようです。

**参考:**  
[PHP: Locale::acceptFromHttp -
Manual](https://www.php.net/manual/ja/locale.acceptfromhttp.php)

**サンプルコード**

[code]

    <?php
    $locale = locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']);
    echo $locale;
    ?>
    
[/code]

**結果:**

[code]

    en_US, ja_JP など
    
[/code]


CC BY-SA 4.0
2020-03-17T08:12:19.520
63927
2020-03-17T08:12:19.520
3060
63863
answer