nginxでサブドメインとドキュメントルートを連動させる方法はありますか?

やりたいのはこういうことです。
server {
 server_name $1.hoge.com;
 root /usr/share/nginx/$1;
}

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2017/08/08 20:01:25

ベストアンサー

id:studiocherry No.1

回答回数283ベストアンサー獲得回数100

http://nginx.org/en/docs/http/ngx_http_core_module.html#server_name

server {
  server_name ~^(www\.)?(.+)$;

  location / {
    root /sites/$2;
  }
}


という設定例があります。

この例だと server_nameが、 www.example.jp の場合は、 /sites/example.jp が、root ディレクトリになります。

このように server_name を正規表現で記載して、後方マッチで、root を指定するのは可能だと思います。

他1件のコメントを見る
id:studiocherry

ベストアンサーありがとうございます。うまくいったでしょうか?

2017/08/08 21:39:41
id:standard_one

ありがとうございます、うまくいきました。
他の方の参考にもなると思うので必要部分を抜粋します。
server {
 server_name ~^(.+).ドメイン$;
 location / {
  root /usr/share/nginx/$1;
 }
}

2017/08/12 23:27:54

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません