2015-12-14 13 views
5

Làm cách nào để tạo tên miền phụ cho mỗi người dùng đăng ký trên trang web của tôi? Ví dụ: userone.mysite.com và usertwo.mysite.com.Cách tạo đường dẫn tên miền phụ động

Trong php nó có thể được thực hiện bằng cách sử dụng máy chủ ảo apache, nhưng tôi không thể tìm ra cách để làm như vậy trong Ruby on Rails. Dưới đây là cách thực hiện trong apache

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

Tôi đã xem qua nhiều blog nhưng không tìm được giải pháp. Xin tư vấn.

+0

Bạn có cần tên miền phụ thực hoặc chỉ tên miền ảo –

+0

Tôi cần miền ảo –

Trả lời

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> 

và đừng quên thay đổi cname * nhập cảnh vào tên miền của bạn trong DNS

+0

Vui lòng cho tôi biết nhà cung cấp hostintg để tôi có thể cung cấp cho bạn cấu hình chính xác cname –

0

bổ sung Dinesh Saini câu trả lời - bạn cũng cần phải cập nhật Rails configs cho phù hợp. Ví dụ: nếu bạn cần các tên miền phụ sâu, bạn nên thay đổi config.action_dispatch.tld_length trong staging.rb và bạn nên kiểm tra lại routes.rb.

Sống dụ: Tôi đã phải thực hiện cửa hàng trưng bày bằng tên miền phụ - ví dụ URL my-shop.shop.testapp.com.So gì tôi đã làm, ngoại trừ máy chủ cấu hình thay đổi

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

Trong điều khiển để tìm nguồn

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

tôi cũng thiết lập

config.action_dispatch.tld_length = 2 

tôi đã làm điều này cho staging env vì nó có URL staging.testapp.com nên tôi cần một cấp tên miền phụ khác. Tôi nghĩ rằng bạn chỉ nên kiểm tra xem nó có 1.

Các vấn đề liên quan