私は2つの異なるドメインにリダイレクトするはずのnginxで定義された仮想ホストを持っています。 domain-x.com
を使用するすべてのURLはdomain-a.com
にリダイレクトされますが、domain-x.com/info
は正確にdomain-b.com/info
にリダイレクトされるはずです。私はこれを2つの異なる方法で試しました。特定の場所を別のドメインのその場所にリダイレクトする方法はありますか?
server {
listen 80;
server_name domain-x.com www.domain-x.com;
location ...
return 307 $scheme://domain-a.com$request_uri;
}
これはややdomain-x.com
仕事から一般的なリダイレクトを行います
一般的に私のエントリは次のようになります。
location /info/ {
return 307 $scheme://domain-b.com/info;
}
と::私は二つの方法でリダイレクトを試してみましたlocation
について
location /info/ {
proxy_pass http://domain-b.com/;
}
を私も無駄にlocation = /info/
でこれを試してみました。
私はに実行して問題がdomain-x.com/something
のような任意のURLが[IP]something
にリダイレクトされます(IPは、nginxのは、実行するサーバのアドレスである)、これはまた[IP]info
として終わる/info
に適用されるということです。 [IP]/info
と入力すると、リダイレクトは期待通りに機能します。私の問題を整理するのを助けてくれますか?
あなたのソリューションの両方を試してみましたが、私は同じ結果を得ました:今回は最後にスラッシュを入れた '[IP] info /'です。他のすべての仮想ホストを無効にしたにもかかわらず、他の設定が干渉しているのではないかと思っています。 – Midnighter
ブラウザのプラグイン/ツールを試して、HTTPレスポンスの 'Location'ヘッダを分析し、どのサーバがドメイン名ではなくIPアドレスを返すのかを確認することをお勧めします。 –
先に 'curl'を使用していたはずです...ターゲットサーバが問題を引き起こしている疑いがありました。 – Midnighter