有什么方法可以设置Apache虚拟主机以通过通配符匹配部分域名?
例如,我们在开发环境中使用xip.io为一些vhost提供支持,我们的标准开发域看起来像domain.com.127.0.0.1.xip.io
,这意味着我们可以使用看起来像这样的vhost :
<VirtualHost *:80>
DocumentRoot "/srv/www/domain.com/public_html"
ServerName domain.com.127.0.0.1.xip.io
ServerAlias www.domain.com.127.0.0.1.xip.io
<Directory "/srv/www/domain.com/public_html">
Options +Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ErrorLog "/srv/www/domain.com/log/error.log"
CustomLog "/srv/www/domain.com/log/access.log" common
LogLevel error
</VirtualHost>
这很好,直到IP地址必须改变。知识产权必须改变的原因可能有很多(例如让其他人查看你的工作等等)以及这个动态IP世界(这就是xip.io之类的东西如此有用),能够适应对此更改,无需使用vhost设置,将会有所帮助。
考虑到这一点,是否可以设置上面的ServerName
和ServerAlias
设置以支持通配符?那么,不是必须为可能重新启动到这台机器的每个可能的IP地址设置一个别名,而是看起来像这样?
<VirtualHost *:80>
DocumentRoot "/srv/www/domain.com/public_html"
ServerName domain.com.*.xip.io
ServerAlias www.domain.com.*.xip.io
<Directory "/srv/www/domain.com/public_html">
Options +Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ErrorLog "/srv/www/domain.com/log/error.log"
CustomLog "/srv/www/domain.com/log/access.log" common
LogLevel error
</VirtualHost>
谢谢。
答案 0 :(得分:0)
这样的事情应该有效。
<VirtualHost *:80>
DocumentRoot "/path/to/site"
ServerAlias site.*.xip.io
ServerName site.dev
</VirtualHost>