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