如何实现通配符/捕获所有虚拟主机

如何实现通配符/捕获所有虚拟主机

在 Debian 中使用 Apache 实现通配符虚拟主机的最佳方法是什么,这样我放在 /var/www/ 文件夹中的任何文件夹都可以像这样工作

/var/www/abc 将自动指向 abc.local

/var/www/wp 将自动指向 wp.local

/var/www/test 将自动指向 test.local

我想我唯一要做的就是手动编辑 /etc/hosts 文件?

答案1

一般来说,在 Apache 中,如果没有,则第一个主机将显示为默认主机服务器名称或者服务器别名

可能发行版包含000-默认.conf这将成为默认的虚拟主机。

现在,为了满足您的特定需求,您似乎正在设置开发环境。您可以使用 DNSMasq 和 apache 自动将 .local 解析为 localhost,并告诉 apache 在特定目录下查找它:

wp.local -> /var/www/wp
something.local -> /var/www/something

dnsmasq配置文件

# catch .local
address=/.local/127.0.0.1

在Apache中:

<Directory "/var/www/">
  AllowOverride All
  Options Indexes MultiViews FollowSymLinks
  Require all granted
</Directory>

<VirtualHost *:80>
  ServerName localhost.local
  ServerAlias *.local
  UseCanonicalName off
  VirtualDocumentRoot /var/www/%1/
</VirtualHost>

帖子以供进一步参考。他使用的是 OS X,但应该适用于任何 *nix 发行版。

相关内容