每个用户需要自己的二级域名,就像这样:
1 、 http://miya1201.tumblr.com/
2 、 http://ass-trals.tumblr.com/
而不是这样:
1 、 http://my.oschina.net/u/2300487
1 、 http://my.oschina.net/u/2819278
当用户填写自己的用户名,提交后,就自动生成二级域名,如何实现呢?
使用的 Apache
1
abelyao 2016-06-28 12:19:08 +08:00 via iPhone 1
泛域名解析,服务器收到请求之后把 host 作为业务逻辑的参数
|
2
ango 2016-06-28 12:20:41 +08:00 1
1 、*.domain.com
2 、 server rewrite 猜测应该是这样吧 |
3
Marfal 2016-06-28 12:28:15 +08:00 2
无形飙车,最为致命
|
4
hlg002 OP |
5
ss098 2016-06-28 12:41:45 +08:00 1
你提到的 Rewrite 是一种方案,比如有如下链接:
example.com/home/username 你可以使用 Rewrite 规则匹配 username.example.com 转发到如上链接,具体实现就不写了,你写的思路是正确的。 也可以在程序里匹配 username.example.com 。 |
6
Sasasu 2016-06-28 13:30:32 +08:00 via Android
我没做过业务,但域名解析商一般是能提供 sdk 的....
|
7
icybee 2016-06-28 13:56:13 +08:00
参考这篇文章的动态二级域名解析部分 http://icybee.cn/article/57.html
|
8
zacharyjia 2016-06-28 14:47:27 +08:00
泛域名解析是肯定需要的,然后在服务器上处理的话,有些框架提供相应的判断。
比如 Laravel 在路由的部分就提供了 domain 字段,可以在里面进行相应的定义,并且可以拿出来当做参数使用。 参考下面这个: http://www.jianshu.com/p/e10f7fd84b08 |
9
hlg002 OP @abelyao
@ango @ss098 @zacharyjia 功能实现了。但是。。。。 URL 自动跳转了啊 输入 http://miya1201.tumblr.com/ 地址栏 变成了 http://tumblr.com?name=miya1201 (╯°□°)╯︵ ┻━┻ |