WPMLは個別のドメインやサブドメインからの異なる言語に使用できます。 これを利用するにはあなたのWebサーバーに設定が必要です。 あなたが自分のサーバーへの設定方法を理解できるように、まず作動の理論から説明します。

異なるドメインからのリクエスト対応ステップ

リクエストが来ると以下が起こります:

  1. DNSがブラウザにサイトのホスト先を伝えます。
  2. ウェブサーバーがリクエストを受け取り、どの仮想ホストが答えるか確認します。
  3. 仮想ホストがWordPressとWPMLを実行します。WPMLがWordPressに各言語にリターンするページを指示します。

違うドメインで異なる言語が運用されるには、全言語が同じWordPressインストレーションを指定しなくてはなりません。 これを行うにはDSN設定とApacheコンフィギュレーションが必要です。

一つのドメインからもう一つのドメインにリダイレクトするように.htaccessファイルを編集するのは間違いです。 WordPressインストールは一つしかないため、リダイレクト先はありません。

1) DNS設定

異なる言語にすべてのドメインとサブドメインを登録する必要があります。 方法はホストのコントロールパネルにもよりますが、結果はすべて同じです。 すべてのドメインが同じウェブサーバーに行かなくてはなりません。

あなたがローカルサイト(localhost)を運用し、この設定をテストしたい場合、 ‘hosts’ファイルを編集し、色々なドメインにこれを追加する必要があります。

通常ローカルサーバーアドレスは127.0.0.1なので、es.localde.localなどのドメインをテストする場合、これを既存のホストファイルに追加してください。

127.0.0.1  es.local
127.0.0.1  de.local

Linux 環境のPCでは、ホストファイルは /etc/hostsにあります。ウィンドウズでは、通常C:WINDOWSsystem32driversetchosts内にあります。

2) ウェブサーバーの設定

この例ではApacheを使い、コンフィギュレーションファイルがどのように見えるか説明します。 あなたのサーバーはApacheコンフィギュレーションファイルにグラフィックコントロールを追加するコントロールパネルをApache上部に搭載しているかもしれません。 コントロールパネルを使って下記を実行する方法が分からない場合、これをコピーしてホスティングプロバイダーに聞くとよいでしょう。

一番簡単な方法はすべてのドメインに対し、一つのVirtualHostエントリーを持ち、ServerAlias指示を使用し、Apacheに同じ仮想ホストの違うドメインに答えさせることです。

例:

<VirtualHost *>
  DocumentRoot /your_wp_install_directory/wordpress
  ServerName www.english-domain.com
  ServerAlias www.french-domain.fr

  ... your other stuff here ...
</VirtualHost>

これはApacheに www.english-domain.comwww.french-domain.frからのリクエストに答えるWordPressインストールが一つあることを教えます。これらが全く違うドメインまたはサブドメインであるかは重要ではありません。

仮想ホストファイル内で(あなたが直接アクセスを持たないため)ServerAliasの設定方法が分からない場合、2つのVirtualHostを設定し、両方ともServerNameの値は違うけれど同じDocumentRoot (WordPressがインストールされたパス)を指すように設定することができます。

このセットアップはWPMLなしでもテストできます(お勧めします)。 両方のドメインへ行き、あなたのWordPressサイトが見えるかどうか確認します。

注:共有ホスティングプロバイダーの多くはApacheコンフィギュレーションファイルを直接編集することを禁じます。 その代わり、同一のWordPressインストレーションを指すcPanel-アドオンを作ることができます。

3) WPMLに異なるドメインに異なる言語を使用していることを教える

この設定が作動する場合、WPMLにこれを言語の識別に利用するよう指示します。

WPML->Languagesへ行きます。 ‘A different domain per language’を選択します。WPMLは各言語用のドメインを要求します。入力し、確認して保存します。

WPMLの言語毎のドメイン

言語フィールドにWPMLが設定するデフォルト値はロケール名を持つサブドメインです。実際のドメイン名で上書きすることもできます。