当您注册 Blogger 或 WordPress 时,您将获得自己的子域,该子域可以立即运行。鉴于我有自己的 VPS/VDS/专用服务器,我怎样才能做到这一点?
问问题
1772 次
2 回答
10
简而言之:
- 在 DNS 中创建一个通配符域(即,解析whatever.yourdomain.example 返回您的IP),
- 在您的 Web 服务器中创建一个默认虚拟主机,然后
- 检查应用程序中的 URL。
如何做到这一点取决于您使用什么技术。让我举几个例子:
- 如何在 BIND和Windows Server DNS中设置通配符域。
- 要创建默认虚拟主机,您只需要在 IIS 中创建一个没有主机条目的 Web 服务器。在 Apache 中,配置文件中列出的第一个虚拟主机成为默认主机。
- 在这里,您可以 (a) 根据域重写 URL(即,将子域转换为 URL 中的参数,例如 ASP.NET的示例,Apache 的示例与 mod_rewrite: Link1 , Link2),或者 (b) 只是查看 URL 的主机部分(例如
Request.Url
在 ASP.NET 中)。
bortzmeyer的补充(抱歉覆盖了您的编辑,存在编辑冲突):
通配符的语法,在通常的 DNS 区域文件格式中(在 RFC 1035 中描述并在 BIND、nsd 和可能是其他格式中实现)带有星号:
* IN A 198.51.100.3
于 2010-02-03T07:25:28.373 回答
2
对于那些对所有这些 A 和 CNAME 事物不熟悉的人来说,有一个非常简单的解决方案,并且可以与共享主机一起使用:
只需转到您的 cpanel 并添加带有 * 的子域
例如,如果您的域名为 abc.com,您可以添加 * 并选择/输入子目录作为根目录。当您保存时,它会在您的子域表中添加 *.abc.com,并将所有必要的 A 记录添加到您的区域文件中。
当您在浏览器中点击“any”.abc.com 时,服务器会将您带到指定位置(您提到的子目录)。
此外,要处理特定重定向的所有(任何)子域,您可以使用该子目录中的 .htaccess 来处理所有传入的子域请求。
一个有效的 .htaccess 示例如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(^.*)\.abc\.com
RewriteRule (.*) handler.php?user=%1&%{QUERY_STRING}
</IfModule>
handler.php(下面的代码)只是在 URL 中显示带有子域名和所有查询字符串的欢迎消息:
$user = $_REQUEST["user"];
print_r($_REQUEST);
echo "Welcome {$user}";
希望这可以帮助。
于 2012-12-02T20:24:48.317 回答