nginxは特定のファイルとサブディレクトリを除くすべてを異なるIPに解決(ポイント)します

nginxは特定のファイルとサブディレクトリを除くすべてを異なるIPに解決(ポイント)します

そこで、私はstackoverflowに同様の質問を投稿しましたが、このセクションの方が適切だと思います。

私が現在持っているのは 1 つの旅行ブログで、そのブログにはチケット/予約用のホワイトラベルがあります。

ホワイトラベルのウェブサイトは基本的にエイリアスドメインを指すサブドメインです

mytravelblog.com私のウェブサイトがホワイトラベルでwhitelabel.otheragency.com、サブフォルダにあるサブドメインを指しているとします。

mytravelblog.com/tickets開きますwhitelabel.otheragency.comが、ホワイトラベルをメインの Web サイトに切り替えたいのですが、問題は robots.txt が提供されないため、それを配信してホスティングに保存する必要があることです。また、ブログは保持したいのですが、サブフォルダーに切り替えます。

whitelabel.otheragency.comホワイトラベルは、ホワイトラベルにアクセスしてIPを解決する2つの方法を提供しています。

blogメイン ドメインのホワイト ラベルからのすべて、ただしサブディレクトリからホストされているブログ Web サイトおよびホストされている robots.txt ファイルへのすべてを解決するには、リダイレクトまたはプロキシ設定を何らかの方法で実行できますかrobots.txt

だからこうあるべきなんだ

mytravelblog.com開いているwhitelabel.otheragency.comが、私のドメインの下では mytravelblog.com/tickets開いているwhitelabel.otheragency.com/ticketsため、サブフォルダの残りも同様です

mytravelblog.com/blog私のホスティング上にあるブログの Web サイトと、 mytravelblog.com/blog/10-most-beautiful-beachesブログの投稿を開くためのその他のサブフォルダーを開くと、 mytravelblog.com/sitemap.xml私がホストしている生成済みのサイトマップが開き、 mytravelblog.com/robots.txt生成済みの robots.txt ファイルが開きます。

答え1

おそらく、次のようなものを探しているのでしょう:

location / {
    ... other proxy_pass settings ...
    proxy_pass http://whitelabel.otheragency.com;
}

location = /robots.txt {
    try_files $uri =404;
}

location = /sitemap.xml {
    try_files $uri =404;
}

location /blog {
    try_files /path/to/front_controller =404;
}

関連情報