- ステータス
- 解決済み
- 解決されたバージョン
- 3.7.0
問題の概要
nginxサーバーでWPMLを「言語ごとに異なるドメイン」で設定すると、毎回デフォルト言語のホームページにリダイレクトされます。
この問題は、REQUEST_URIが空の場合に誤ったHTTP_HOST変数を返すnginxに起因しているようです。
回避策
この問題を解決するには、ドメインごとに個別のサーバーブロックを作成します。
たとえば、一般的なnginxの設定は次のようになります。
server {
server_name example.com example.es;
root /var/www/html;
index index.php;
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
}
解決するには、次のように各server_nameに対してサーバーブロックを作成します。
server {
server_name example.com;
root /var/www/html;
index index.php;
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
}
server {
server_name example.es;
root /var/www/html;
index index.php;
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
}
実際の設定は異なる場合があります。サーバーブロックを複製し、各ブロックに異なるserver_nameを設定するだけです。
最後に、nginxを再起動して再度試します。