定义站点可用虚拟主机时的优先级

Linodebuild议将每个虚拟主机定义在/etc/apache2/sites-available (在Ubuntu上)的单独文件中,然后使用a2ensite启用每个站点。 我来自VPS,我的所有虚拟主机都在一个httpd.conf文件中定义,并尝试将其转换为build议的格式。

我已经设置的一件事是我的主站点的通配符子域,后来映射到用户空间。 不过,我也有静态的子域名。 我的印象是静态子域名需要在我的configuration中通配符之上,所以如果访问某个静态子域名,apache将使用正确的虚拟主机而不是通配符。

如果这是真的,如果每个站点使用一个文件,如何定义优先级? 或者我只需要坚持一个站点文件,并将所有子域粘贴在与主虚拟主机相同的文件中?

除了更易于pipe理和更容易启用/禁用虚拟主机之外,没有理由需要维护该结构(/ etc / apache2 / sites-available / conf_file)如果您希望将所有内容保存在同一个文件中,继续这样做。

Apache以字母数字sorting顺序处理configuration子目录的内容(正确地称为本地sorting顺序,但Apache不使用该术语)。

因此,使用文件名来设置顺序。 您可以前缀或后缀所有的文件名,或者只是其中的一些,发明名称,正确sorting或任何其他浮在你的船,只要他们正确的sorting。 不过,我个人更喜欢使用前缀,因为它是完全清楚你在做什么。

使用该文件结构,可以将文件保存在/etc/apache2/sites-availablea2ensite只需在/etc/apache2/sites-enabled上链接这些文件。

如果要设置优先级,则需要确保已sites-enabled的文件按照您的偏好进行sorting。 例:

 $ ls -l /etc/apache2/sites-enabled/ 00default -> ../sites-available/default 01siteA.com -> ../sites-available/siteA.com 02siteB.com -> ../sites-available/siteB.com 99siteZ.com -> ../sites-available/siteZ.com