Xampp虚拟主机:通配符域和子域



我通读了另一篇文章,但似乎没有人回答我一直在问的问题。有可能拥有通配符域的通配符子域吗(即使它只是用于子域而不是子域),比如: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>

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

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

主机文件包含两行:

  • 127.0.0.1示例.local
  • 127.0.0.1 foo.example.local

我想好了,要通过通配符添加子域功能,我只需要在*.domain.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>

重要的部分是:

VirtualDocumentRoot "C:/xampp/www/%-2/sub/%-3"
ServerName sub.domain.local
ServerAlias *.*.local
<Directory "C:/xampp/www/*/sub/*">

简单的修复程序,可以轻松地在与主域相同的文件夹中创建子域。允许您在一个项目文件夹中轻松创建多个域。

XAMPP 7.3.7(INFINITE*.LOCALHOST)+一些SYMFONY v4域

编辑并激活Apache"vhost-alias模块"(取消注释#)

FILE=C:\examplep\apache\conf\httpd.conf

LoadModule vhost_alias_module modules/mod_vhost_alias.so

FILE=C:\examplep\apache\conf\extra\httpd-vhosts.conf

使用此进行编辑,适用于Chrome(而非Firefox)

#############################
## LOCALHOST
#############################
<VirtualHost *:80>
       UseCanonicalName Off
       DocumentRoot "C:/xampp/htdocs/"
       ServerName localhost
</VirtualHost>

#############################
## SYMFONY VHOSTS (/public)
#############################
<VirtualHost *:80>
       UseCanonicalName Off       
       DocumentRoot "C:/xampp/htdocs/symfonyapi/public/"
       ServerName symfonyapi.localhost
        <Directory C:/xampp/htdocs/symfonyapi/public/>
        AllowOverride All
        Order Allow,Deny
        Allow from All
    </Directory>       
</VirtualHost>
<VirtualHost *:80>
       UseCanonicalName Off       
       DocumentRoot "C:/xampp/htdocs/symfonyweb/public/"
       ServerName symfonyweb.localhost
        <Directory C:/xampp/htdocs/symfonyweb/public/>
        AllowOverride All
        Order Allow,Deny
        Allow from All
    </Directory>
</VirtualHost>

#############################
## VHOSTS *.LOCALHOST
#############################
<VirtualHost *:80>
       UseCanonicalName Off
       ServerAlias *.localhost
       VirtualDocumentRoot "C:/xampp/htdocs/%1/"
</VirtualHost>

对于HTTPS

FILE=C:\examplep\apache\conf\extra\httpd-ssl.conf

<VirtualHost _default_:443>
#   General setup for the virtual host
# DocumentRoot "/xampp/htdocs"
# ServerName www.example.com:443
# ServerAdmin admin@example.com
# ErrorLog "/xampp/apache/logs/error.log"
# TransferLog "/xampp/apache/logs/access.log"
UseCanonicalName Off
ServerAlias *.localhost
ServerAdmin admin@example.com
VirtualDocumentRoot "c:/xampp/htdocs/%1"
ErrorLog "/xampp/apache/logs/%1.error.log"
TransferLog "/xampp/apache/logs/%1.access.log"

创建域:

C:xampphtdocsdev1
C:xampphtdocsdev2
C:xampphtdocsdev3

最新更新