0

我想在我的站点中使用用户名作为子域(如user1.domain.com.
我已经阅读了很多文章,这些文章提到在 DNS 中创建如下 A 记录:

*.domain.com A 127.0.0.1 ;OR you site ip address

然后使用 .htaccess 将请求从子域重定向到服务器中的文件夹。

但我发现另一种方法据说只是修改你的 httpd.conf 如下:

<VirtualHost *:80>
        DocumentRoot /abs/path/to/webroot
        ServerName   domainname.com
        ServerAlias *.domainname.com
        <Directory /abs/path/to/webroot>
                AllowOverride All
                Order allow,deny
                Allow from all
        </Directory>
</VirtualHost>

然后通过检索子域$_SERVER['HTTP_HOST']ServerAlias *.domainname.com问题是当我们可以做一个简单的事情时,为什么有人要使用 htaccess 并对 apache 施加压力并创建 DNS 记录httpd.conf
我提前感谢您的意见。

4

2 回答 2

2

您已经添加了ServerAlias,但是为了让您的计算机能够找到user1.domain.comuser2.domain.com解决该问题127.0.0.1,您需要更新您的HOSTS文件或DNS Table.

您编写的配置用于 Apache 服务器,用于在用户请求域时处理重定向。因此,从本质上讲,您需要一个Dynamic HOSTS文件或一项服务来解析*.domain.com您的127.0.0.1服务器。

希望这可以帮助。:)

于 2012-06-08T06:27:22.757 回答
2

您需要设置通配符 DNS 记录并配置服务器别名httpd.conf以启用任意子域的托管。他们配置完全不同的东西。

添加通配符 DNS 记录允许客户端确定您的子域的 IP 地址。使用通配符 DNS 记录 aboutuser1.domain.com将解析为127.0.0.1. 如果您没有 DNS 记录,则 nouser1.domain.com将不是有效名称,也不会解析为 IP 地址。DNS 记录是为了允许客户端连接到您的服务器。

httpd.conf配置是 Apache 服务器的本地配置。它不会影响客户。该行将ServerAlias *.domainname.com配置 Apache 以告诉它处理任意子域。客户端不会直接受此设置影响。

于 2012-06-08T06:30:31.887 回答