nasıl

2015-12-14 9 views
5

Nasıl sitemde kaydeder her kullanıcı için alt alan oluşturabilir dinamik alt alan raylar oluşturmak için? Örnek userone.mysite.com ve usertwo.mysite.com için.nasıl

php yılında apache sanal konak kullanılarak yapılabilir, ama Ruby on Rails aynı şeyi anlamaya olamaz. İşte birçok bloglar geçti apache

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

yapılabilir ancak çözüm bulamadım nasıl. Lütfen Önerileri.

+0

Fiziksel alt etki alanına veya sanal etki alanına gereksiniminiz var –

+0

Sanal etki alanına ihtiyacım var –

cevap

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> 

ve değişim cname * Dinesh Saini cevap DNS etki alanınıza giriş

+0

Size tam bir cname yapılandırması sağlayabilmemiz için lütfen hostintg sağlayıcısını bildirin –

0

eklenmesi unuttum yok - ayrıca Rails güncellemeniz gerekir buna göre yapılandırmaları. Örneğin, derin alt etki alanları gerekirse staging.rb içinde config.action_dispatch.tld_length değiştirmelidir ve routes.rb yeniden kontrol edilmelidir.

Canlı örnek: Ben alt alan tarafından görüntülendiği dükkanı uygulamak zorunda - örnek URL'den my-shop.shop.testapp.com.So Ben sunucu geneli hariç yaptıklarını kaynak

bulmak için denetleyici olarak

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

değiştirir

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

Ben de

config.action_dispatch.tld_length = 2 

ı için yaptım

set env evreleme böyle URL'yi staging.testapp.com vardır bu yüzden başka bir alt alan seviyesini gerekir çünkü. Ben sizin için olduğunu düşünüyorum 1.