WPML
ステータス
解決済み
解決されたバージョン
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を再起動して再度試します。

すべての既知の問題 →