web-dev-qa-db-ja.com

すべてのNginx仮想ホストは1つのVHostにリダイレクトします

Sites-enabled /domain.tldファイルで約4つの異なるホスト名が定義されています。各ファイルは次のようになっています。

#Redirect everything to the main site.
server {
        server_name *.abc.net;
        listen 80;

        root /var/www/vhosts/abc.net/httpdocs;

        if ($http_Host != "acb.net") {
                rewrite ^ http://abc.net$request_uri permanent;
        }

        include /etc/nginx/conf.d/restrictions.conf;

        #Additional rules go here.

        # Only include one of the files below.
        include /etc/nginx/conf.d/wordpress.conf;

        # W3 Total Cache Rules
        include  /var/www/vhosts/abc.net/httpdocs/nginx.conf;
}

サイト対応フォルダー内の各サーバーブロックはドメイン名のみを変更するため、abc.netはxyz.comなどになります。

問題は、これらすべての構成ファイルが配置されているかどうかに関係なく、すべての仮想ホストが1つの仮想ホストにリダイレクトするだけであるということです。 nginxサーバーを再起動して再読み込みし、サーバーを再起動してみました。

これらのリクエストは、PHP-FPMを実行しているアップストリームphpに送信され、それが役立つ場合は、すべてのドメインがwordpress)を実行しています。

あなたの助けに感謝。ありがとうございました :)

1
Karthik Kastury

各仮想ホストのserver_nameブロックを変更してみてください

server {
  ...
  server_name   example.com  *.example.com;
  ...
}

または、nginxが推奨するように

server {
    listen       80;
    server_name  *.example.com;
    return       301 http://example.com$request_uri;
}

server {
    listen       80;
    server_name  example.com;
    ...
    your config removing the if part
    ...
}
2

そう...

        if ($http_Host != "acb.net") {
            rewrite ^ http://abc.net$request_uri permanent;
        }

各仮想ホストブロックに含まれていますか?または、ここでもホスト名を適切な値に変更することを覚えていますか?

そうでなければ、それは多くのことを説明するでしょう:-)

0