web-dev-qa-db-ja.com

Nginxの設定、どうすればプライマリマルチサイトドメインをリダイレクトできますが、そのサブフォルダも他のドメインもリダイレクトできません。

環境

この環境はWordpress MultisiteがインストールされたNginxです。

質問

プライマリマルチサイトドメイン(domain.com、www.domain.comなど)を別のドメイン(domain-new.com、www.domain-new.comなど)にリダイレクトする必要があります。しかし、サブフォルダをリダイレクトしたくありません。たとえば、/ wp-admin /フォルダはリダイレクトしないようにする必要があります。そうしないと、マルチサイトネットワークを管理できなくなります。

明らかに、私は他のどのドメインもリダイレクトしたくありません。上記のものだけ。

私はApacheでこれを行う方法についての指示を見つけました、しかし私はNginxでそれを理解することができませんでした。

これまでに思いついたこと

私は次のことに出会いました:

server {
  listen 80;
  server_name domain.com www.domain.com;
  rewrite ^ $scheme://www.domain-new.com$request_uri permanent;

しかし、これはdomain.comのサブフォルダもリダイレクトします。どのようにリダイレクトからwp-adminフォルダを除外するようにするべきでした。

私もこの選択肢に出くわしました:

location = / {
rewrite ^ http://domain-new.com/$uri permanent;    
}

しかし、locationコマンドにドメインを含めることができるかどうか、および可能であれば、特定のサブフォルダー(wp-admin)をリダイレクトに含めないようにする方法については、何もわかりませんでした。

1
omega33

nginxサーバーブロックが複数のドメインを処理している場合、最も簡単な解決策はifブロック内で$Hostパラメータをテストすることです。また、rewriteステートメントを単一のURIにのみ一致するように変更します。

例えば:

if ($Host = domain.com) {
    rewrite ^/$ https://new-domain.com permanent;
}

これは既存のserverブロックの最上部近くに配置されます。

0
Richard Smith