我想在我的网站中使用用户名作为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
中做httpd.conf
之类的简单事情时,为什么有人会使用htaccess并对apache施加压力并创建DNS记录?
我提前感谢您的意见。
答案 0 :(得分:2)
您添加了ServerAlias
,但是为了让您的计算机找到user1.domain.com
和user2.domain.com
应解析为127.0.0.1
,您需要更新HOSTS
文件或DNS Table
。
您编写的配置适用于Apache Server,用于在用户请求域时处理重定向。因此,基本上,您需要Dynamic HOSTS
文件或将*.domain.com
解析为127.0.0.1
服务器的服务。
希望这会有所帮助。 :)
答案 1 :(得分:2)
您需要设置通配符DNS记录并在httpd.conf
中配置服务器别名,以便托管任意子域。他们配置完全不同的东西。
添加通配符DNS记录允许客户端确定子域的IP地址。使用关于user1.domain.com
的通配符DNS记录将解析为127.0.0.1
。如果您没有DNS记录,则user1.domain.com
将不是有效名称,并且它将无法解析为IP地址。 DNS记录是允许客户端连接到您的服务器。
httpd.conf
配置是Apache服务器的本地配置。它不会影响客户。行ServerAlias *.domainname.com
将配置Apache以告诉它处理任意子域。客户端不会受此设置的直接影响。