Xampp Virtualhost:通配域和子域

N.S*_*per 4 apache xampp wildcard-subdomain wildcard virtualhost

我通读了另一篇文章,但似乎没有人回答我遇到的问题。是否可以具有通配符域的通配符子域(即使仅用于子域而不是子子域),如:foo.example.local。我已经可以使用example.local了,但是我不知道如何获取foo.example.local来从/ example文件夹中的/ sub / foo文件夹中抓取文件。此时的我的配置(httpd-vhost.conf):

NameVirtualHost *:80
<VirtualHost *:80>
    DocumentRoot "C:/xampp/www"
    ServerName localhost
    ServerAlias localhost
</VirtualHost>
<Virtualhost *:80>
VirtualDocumentRoot "C:/xampp/www/%-2"
    ServerName domain.local
    ServerAlias *.local
    <Directory "C:/xampp/www/*">
         Options Indexes FollowSymLinks Includes ExecCGI
         AllowOverride All
         Order allow,deny
         Allow from all
         Require all granted
     </Directory>
</Virtualhost>
<Virtualhost *:80>
    VirtualDocumentRoot "C:/xampp/www/%-2/sub/%-3"
    ServerName sub.domain.local
    ServerAlias *.*.local
    <Directory "C:/xampp/www/*/sub/*">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted     
    </Directory>
</Virtualhost>
Run Code Online (Sandbox Code Playgroud)

当前发生的情况是foo.example.local只是转到example文件夹,而不是我希望它执行的example / sub / foo文件夹。

哦,我已经启用了:LoadModule vhost_alias_module modules/mod_vhost_alias.so在httpd.conf中

主机文件包含两行:

  • 127.0.0.1 example.local
  • 127.0.0.1 foo.example.local

N.S*_*per 5

我想通了,要同时通过通配符添加子域功能,我只需要在* .domain.local中使用第二个星号,然后将其*即可。* .local因此,最终结果将如下所示:

<VirtualHost *:80>
    DocumentRoot "C:/xampp/www"
    ServerName localhost
    ServerAlias localhost
</VirtualHost>
<Virtualhost *:80>
    VirtualDocumentRoot "C:/xampp/www/%-2/sub/%-3"
    ServerName sub.domain.local
    ServerAlias *.*.local
    <Directory "C:/xampp/www/*/sub/*">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted     
    </Directory>
</Virtualhost>
<Virtualhost *:80>
    VirtualDocumentRoot "C:/xampp/www/%-2"
    ServerName domain.local
    ServerAlias *.local
    <Directory "C:/xampp/www/*">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted
    </Directory>
</Virtualhost>
Run Code Online (Sandbox Code Playgroud)

重要的是:

VirtualDocumentRoot "C:/xampp/www/%-2/sub/%-3"
ServerName sub.domain.local
ServerAlias *.*.local
<Directory "C:/xampp/www/*/sub/*">
Run Code Online (Sandbox Code Playgroud)

简单的修复使得在与主域相同的文件夹中创建子域变得容易。使您可以轻松地在一个项目文件夹中创建多个域。