現在、複数のサービスを運用しておりまして、どのサービスもサブドメインありのページになっております。
しかし、少数ではありますが、サブドメインなしのURLにアクセスするユーザーがおります。

そういうユーザーにはwwwのサブドメインをつけて、リダイレクトするようにしたいのですが、
そういった設定をnginxで出来ますでしょうか?

リダイレクト自体は次のような設定でできましたが、
今回の場合httpsのページに飛ばさなくてはいけないのと、サブドメインが付いている場合は、
wwwではなく、サブドメインのURLに飛ばしたいです。

server {
  listen 80;
  server_name example.com;
  rewrite ^(.*)$ http://www.example.com$1 permanent;
}

仮に sub.example.com というURLにアクセスした場合は、wwwに変えずに、そのまま、アクセスしてほしく、example.com というURLにアクセスした場合は www.example.com にリダイレクトさせてほしいです。

また、Railsではforce_sslとしており、httpからのアクセスをhttpsにリダイレクトさせております。

宜しくお願いします。

nginxの設定ファイル

この設定だとリダイレクトが繰り返し行われてしまいます。
rewrite ^(.*)$ https://www.example.com$1 permanent; の行をなくせば問題なく動作するものの、サブドメインの件が解消されていないので困っております。

また、SSLはドメインのワイルドカードで取得しているため、
サブドメインなしのURLにアクセスすると、

プライバシーエラー

が表示されてしまいます。

upstream unicorn_app_name {
 server unix:/srv/www/app_name/shared/sockets/unicorn.sock fail_timeout=0;
}

server {
  listen 80;
  server_name app_name rails-app;
  rewrite ^(.*)$ https://www.example.com$1 permanent;

  access_log /var/log/nginx/app_name.access.log;

  keepalive_timeout 5;

  root /srv/www/app_name/current/public/;


  location / {
    try_files $uri/index.html $uri/index.htm @unicorn;
  }

  location @unicorn {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;

    proxy_read_timeout 60;
    proxy_send_timeout 60;

    # If you don't find the filename in the static files
    # Then request it from the unicorn server
    if (!-f $request_filename) {
      proxy_pass http://unicorn_app_name;
      break;
    }
  }

  location /nginx_status {
    stub_status on;
    access_log off;
    allow 127.0.0.1;
    deny all;
  }

  error_page 500 502 503 504 /500.html;
  location = /500.html {
    root /srv/www/app_name/current/public/;
  }
}