带有xip.io通配符域的Apache vhost

时间:2014-03-17 10:40:42

标签: apache virtualhost xip.io

有什么方法可以设置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设置,将会有所帮助。

考虑到这一点,是否可以设置上面的ServerNameServerAlias设置以支持通配符?那么,不是必须为可能重新启动到这台机器的每个可能的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>

谢谢。

1 个答案:

答案 0 :(得分:0)

这样的事情应该有效。

<VirtualHost *:80>
    DocumentRoot "/path/to/site"
    ServerAlias site.*.xip.io
    ServerName site.dev
</VirtualHost>