动态创建子域
当用户注册 Blogger 或 WordPress 时,就会获得自己的立即可用的子域。鉴于我有自己的 VPS/VDS/专用服务器,我怎样才能实现同样的目标?
When one signs up for Blogger or WordPress, one gets their very own sub-domain that works instantly. How can I achieve the same, given that I have my own VPS/VDS/Dedicated server?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
简而言之:
如何执行此操作取决于您使用的技术。让我举一些例子:
Request.Url
)。bortzmeyer 添加(很抱歉覆盖您的编辑,存在编辑冲突):
通配符的语法,通常DNS 区域文件格式(在 RFC 1035 中描述并在 BIND、nsd 等中实现)带有星号:
In a nutshell:
How to do this depends on what technology you use. Let me give you some examples:
Request.Url
in ASP.NET).Addition by bortzmeyer (sorry for overwriting your edit, there was an edit conflict):
The syntax for a wildcard, in the usual DNS zone file format (described in RFC 1035 and implemented in BIND, nsd and may be others) is with a star:
对于那些对 A 和 CNAME 事物不熟悉的人来说,有一个非常简单的解决方案,并且可以与共享主机配合使用:
只需转到您的 cpanel 并使用 * 添加一个子域,
例如,如果您的域名为 abc.com,您可以添加 * 并选择/输入子目录作为根目录。保存时,它将在您的子域表中添加 *.abc.com,并将所有必要的 A 记录添加到您的区域文件中。
当您在浏览器中点击“any”.abc.com时,服务器会将您带到指定位置(您提到的子目录)。
此外,要处理特定重定向的所有(任何)子域,您可以使用该子目录中的 .htaccess 来处理所有传入的子域请求。
一个有效的 .htaccess 示例如下:
handler.php(下面的代码)仅显示一条欢迎消息,其中包含子域名和 URL 中的所有查询字符串:
希望这会有所帮助。
For those, who are laymen to all this A and CNAME things, there's a very simple solution and works with Shared Hosting:
Simply go to your cpanel and add a subdomain with *
For example, if your domain is called abc.com, you can add * and select/enter the sub-directory as a root to this. When you save, it will add *.abc.com in your sub-domains table and will add all necessary A records to your zonefile.
When you hit "any".abc.com in your browser, server will land you to the specified location (the sub-directory you mentioned).
Additionally, to handle all (any) sub-domain for specific redirection, you can use a .htaccess in that sub-directory to handle all incoming subdomain requests.
A working .htaccess example is as follows:
The handler.php (code below) simply displays a welcome message with sub-domain name and all query string in the URL:
Hope this helps.