如何自定义二级域名?

每个用户需要自己的二级域名,就像这样:

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

10 条回复    2016-06-29 17:52:13 +08:00
abelyao
    1

abelyao   2016-06-28 12:19:08 +08:00 via iPhone   ❤️ 1

泛域名解析,服务器收到请求之后把 host 作为业务逻辑的参数
ango
    2

ango   2016-06-28 12:20:41 +08:00   ❤️ 1

1 、*.domain.com
2 、 server rewrite

猜测应该是这样吧

Marfal
    3

Marfal   2016-06-28 12:28:15 +08:00   ❤️ 2

无形飙车,*为致命
hlg002
    4

hlg002   2016-06-28 12:29:36 +08:00

RewriteEngine on
RewriteRule ^aaa.$ /www.domain.com/$1
(╭☞•́ω•̀)╭☞ 这样么
ss098
    5

ss098   2016-06-28 12:41:45 +08:00   ❤️ 1

你提到的 Rewrite 是一种方案,比如有如下链接:

example.com/home/username

你可以使用 Rewrite 规则匹配 username.example.com 转发到如上链接,具体实现就不写了,你写的思路是正确的。

也可以在程序里匹配 username.example.com 。

Sasasu
    6

Sasasu   2016-06-28 13:30:32 +08:00 via Android

我没做过业务,但域名解析商一般是能提供 sdk 的….
icybee
    7

icybee   2016-06-28 13:56:13 +08:00

参考这篇文章的动态二级域名解析部分 http://icybee.cn/article/57.html
zacharyjia
    8

zacharyjia   2016-06-28 14:47:27 +08:00

泛域名解析是肯定需要的,然后在服务器上处理的话,有些框架提供相应的判断。
比如 Laravel 在路由的部分就提供了 domain 字段,可以在里面进行相应的定义,并且可以拿出来当做参数使用。
参考下面这个:
http://www.jianshu.com/p/e10f7fd84b08
hlg002
    9

hlg002   2016-06-29 17:04:38 +08:00

@abelyao
@ango
@ss098
@zacharyjia

功能实现了。但是。。。。 URL 自动跳转了啊
输入 http://miya1201.tumblr.com/ 地址栏 变成了 http://tumblr.com?name=miya1201

(╯°□°)╯︵ ┻━┻

hlg002
    10

hlg002   2016-06-29 17:52:13 +08:00

@abelyao 你这个不错,不需要 rewrite
%title插图%num