我现在可以看到许多托管SAAS应用程序为其用户提供子域名,例如,如果应用程序(比如项目管理工具)是http://myapp.com,并且客户可以拥有像
这样的子域名 当用户注册应用程序时,可以保留http://customer1.myapp.com,http://customer2.myapp.com和这些URL。
我有一个转售商托管计划,我想要同样的事情,我的托管计划已设置通配符子域,从技术上讲,我可以在我的主域下创建任何子域。但我的问题是
使用ruby / rails
如何让客户在他们的时间选择他们的subdoamin 注册
此类要求的标准方法是什么
我打算使用rails 3.x.x
提前致谢
答案 0 :(得分:0)
我最近做了类似的事情,我做的是我将服务器配置为接受任何子域,然后重定向到资源URL。在您的情况下,您可能只是将该子域请求路由到rails服务器。如果你正在使用nginx,你会有类似的东西:
server {
listen 80;
server_name dev.yoursite.com *.dev.yoursite.com;
root /path_to_your_site/public; # <--- be sure to point to 'public'!
passenger_enabled on;
rails_env development;
}
然后,在您的应用中,您可以创建具有子域约束的路线,
类似于get '/' => 'users', :constraints => { :subdomain => /.+/ }
的内容,并使用request.subdomain
在控制器操作中处理该子域以查找匹配的用户。
请注意,在您的本地环境中,要么列出所有子域以进行测试,要么在服务器配置中使用lvh.me
。如果您将使用自己的域而不是lvh.me,请不要忘记在您的hosts文件中添加该域和子域。另外,对于prod,请不要忘记在DNS中添加通配符子域记录。