今天在php的集成环境laragon上添加了一个虚拟主机,域名为:whathell.com
突然想在前面加个www.
一种做法是在auto.whathell.com文件中添加如下内容:
<VirtualHost *:8090>
DocumentRoot "C:/mysoft/laragon/www/whathell/"
ServerName www.whathell.com
ServerAlias *.whathell.com
<Directory "C:/mysoft/laragon/www/whathell/">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
虽然可以实现,但又对ServerAlias不解,百度一下发现这个指令是当前虚拟主机的别名,遂
<VirtualHost *:8090>
DocumentRoot "C:/mysoft/laragon/www/whathell/"
ServerName whathell.com
ServerAlias *.whathell.com www.whathell.com
<Directory "C:/mysoft/laragon/www/whathell/">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
重启apache,发现还是启动不了,遂在网上找到一段话:
Many servers want to be accessible by more than one name. This is possible with the ServerAlias
directive, placed inside the <VirtualHost>
section. For example in the first <VirtualHost>
block above, the ServerAlias
directive indicates that the listed names are other names which people can use to see that same web site:
ServerAlias domain.tld *.domain.tld
then requests for all hosts in the domain.tld
domain will be served by the www.domain.tld
virtual host. The wildcard characters *
and ?
can be used to match names. Of course, you can't just make up names and place them in ServerName
or ServerAlias
. You must first have your DNS server properly configured to map those names to an IP address associated with your server.
说domain.tld不能直接访问到网站,需要DNS配置该别名的映射到当前IP,由于是在本地,遂在host文件加上www.whathell.com,然后进浏览器访问,成功了。