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