2015-12-14 8 views
5

サイトに登録する各ユーザーのサブドメインを作成するにはどうすればよいですか?たとえば、userone.mysite.comやusertwo.mysite.comなどです。ダイナミックサブドメインレールの作成方法

phpでは、Apacheの仮想ホストを使って行うことができますが、Ruby on Railsでどのように同じことをするのか分かりません。ここでは、それがどのようにApacheで行うことができるのですか?

<VirtualHost *:80> 
    ServerName www.mysite.com 
    ServerAlias mysite.com *.mysite.com 
    DocumentRoot /www/domain 
</VirtualHost> 

私は多くのブログを見ましたが、解決策を見つけることができませんでした。 アドバイスをお願いします。

+0

物理サブドメインまたはちょうど仮想ドメインが必要です –

+0

私は仮想ドメインが必要です –

答えて

1
<VirtualHost *:80> 
     ServerName mysite.com 
     ServerAlias *.my_site.com 
     # !!! Be sure to point DocumentRoot to 'public'! 
     DocumentRoot /var/www/html/my_site 
     <Directory /var/www/html/my_site> 
     # This relaxes Apache security settings. 
     AllowOverride all 
     # MultiViews must be turned off. 
     Options -MultiViews 
     # Uncomment this if you're on Apache >= 2.4: 
     Require all granted 
     </Directory> 
    </VirtualHost> 

とディネッシュSAINIの答えにDNS

+0

正確なcname設定を提供できるようにhostintgプロバイダを教えてください –

0

また、ドメインへの変更のCNAME *エントリを忘れていない - あなたもそれに応じてレールのconfigsを更新する必要があります。たとえば、深いサブドメインが必要な場合は、 config.action_dispatch.tld_lengthをstaging.rbに変更し、routes.rbを再確認する必要があります。

ライブ例:私はサブドメインで表示するショップを実施しなければならなかった - 例のURL私は、サーバーの設定を除いてやった my-shop.shop.testapp.com.Soは、リソースを見つけるために、コントローラで

constraints (lambda { |req| req.subdomains[1] == 'shop' }) do 
     get '/', to: 'shopes#show', as: :shop 
    end 

を変更

Shop.find_by(id: request.subdomains[0]) 

私も

config.action_dispatch.tld_length = 2 

を設定し、私はこれをやりましたstaging.testapp.comというURLがあるのでenvをステージングするので、別のサブドメインレベルが必要です。私はあなたのためにそれがあることを確認するだけ良いと思います。

関連する問題