Nginxの特定ディレクトリ以下を別のサブドメインに301リダイレクトする設定
個人でウェブサイト運営しており、サービスの拡張に伴って現在の構成から設定を変更したいと考えています。しかし、そのための最適な設定方法がわからないのでこちらで質問させていただきました。
現在、"www.example.com/blog/"以下に、Wordpressで作ったブログを設置しているのですが、これを"blog.example.com/"という別サブドメインのルートディレクトリ以下に、まるごとリダイレクトするように設定したいです。
www.example.com/blog/hogehoge -> blog.example.com/hogehoge
Nginx設定については自分なりに調べてみたのですが同じような条件での設定がなかなか見つからず、自分の知識ではうまく動きそうなものが思いつきません。
以下のようにしてしまうと、必ずトップページにリダイレクトしてしまいます。
server {
listen 443 ssl http2default_server;
server_name www.example.com;
location /blog/ {
return 301 https://blog.example.com;
}
}
そこで、リクエストされたuriを引き継ぐために、http->httpsでのリダイレクトでは"$request_uri"という変数(?)を使っていました。
そこから、このようにすることも考えたのですが、
location /blog/ {
return 301 https://blog.example.com$request_uri;
}
これだとリクエストURIの先頭にある"/blog"の部分もリダイレクト時の情報に含まれてしまうため、
www.example.com/blog/hogehoge -> blog.example.com/blog/hogehoge
のようにそのままのURIでリダイレクトしてしまい、これでは設定したいものと異なります。
$request_uriを取得して編集したものを別の変数に代入等といったことができればいいのですが、Nginxの設定でどのようにするのかわかりません。
これを解決するための方法、もしくはそれを学ぶことのできるURL等を教えていただきたく存じます。稚拙な文章かつ初歩的な内容の質問ではありますが、お力添え願います。