LoginSignup
10
9

More than 3 years have passed since last update.

Railsでサブドメインに対応させる方法

Posted at

はじめに

こんにちは!
こちらの記事では、RubyOnRailsでサブドメインに対応させる方法をご紹介したいと思います^^

サブドメインを設定することによって、localhost:3000から脱却し、mysite-onaga.comや、one.mysite-onaga.com、two.mysite-onaga.com、three.mysite-onaga.comなど好きなドメインを設定できます!

しかし、こちらのドメインはあくまでローカル(自分のPCだけ)だけで使えるものになりますのでご注意ください。。サイトを公開するには、お名前.comさんなどでドメインを取得して設定する必要があり、こちらはご紹介しておりません。

前提:Rails環境構築済み, Mac

URLをlocalhost:3000以外に変更する

はじめにPCの設定そのものにlocalhost:3000にサブドメインを設定してあげます。設定済みの方は飛ばしていただいて大丈夫です。

Macの場合、ターミナルを開いて、vi /etc/hostsで設定ファイルを開きます。人によっては書き込み権限がなく、sudo vi /etc/hostsにする必要があるかもしれません。

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
127.0.0.1       mysite-onaga.com one.mysite-onaga.com
255.255.255.255 broadcasthost
::1             localhost

localhost:3000はIPアドレスにすると、127.0.0.1となります。
ですので、hostファイルの127.0.0.1の行に自分で設定したいサブドメインを記述します。

Railsでrouteを設定する

前章の設定で、URLをmysite-onaga.comなどでアクセスすることで、localhost:3000で開いていたページを開くことができるようになりました。しかし、今回設定したサブドメインは3つあります。せっかくなので、サブドメイン別にrouteを設定していこうと思います。
例えば、get 'home/zero'はmysite-onaga.comでしかアクセスできないように、get 'home/one'はone.mysite-onaga.comでしかアクセスできないようにすることができます。

やっとこRailsのroutes.rbを編集していきます!

### routes.rb ###

# mysite-onaga.com
constraints subdomain: '' do
  get 'home/zero'
end

# one.mysite-onaga.com
constraints subdomain: 'one' do
  get 'home/one'
end

以上の設定により、http://mysite-onaga.com/home/zerohttp://one.mysite-onaga.com/home/oneにアクセスできるようになったかと思います^^

rails routesコマンドを打つとパスがちゃんと設定されているか確認できると思いますので、試してみてください。

終わりに

以上がRailsでサブドメインに対応させる方法になります!

10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9