Xampp Virtualhost: подстановочные домены и субдомены

Я прочитал другой пост, но никто не ответил на вопрос, который у меня был. Возможно ли иметь подстановочные поддомены подстановочных доменов (даже если это только для поддоменов, а не поддоменов), например: foo.example.local. У меня уже работает example.local, но я не могу понять, как получить foo.example.local, чтобы получить файлы из папки /sub/foo в папке /example. Мой конфиг на данный момент (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/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

1 ответ

Я понял это, чтобы добавить функциональность субдомена с помощью подстановочных знаков, мне просто нужно было использовать вторую звездочку ранее в *.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>

И важная часть это:

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" (раскомментируйте #)

ФАЙЛ =C:\xampp\apache\conf\httpd.conf

LoadModule vhost_alias_module modules/mod_vhost_alias.so

ФАЙЛ =C:\xampp\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

ФАЙЛ =C:\xampp\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:\xampp\htdocs\dev1
C:\xampp\htdocs\dev2
C:\xampp\htdocs\dev3
Другие вопросы по тегам