Мне сложно понять, как работает _default_
vhost в Apache.
Я понимаю, что _default_
должен быть первым, но не уверен на 100%, но в документации говорится
Это относится к первому адресу/порту, но НЕ к подстановочному адресу и порту?
Потому что ...
С этой конфигурацией ниже подстановочный порт на _default_:*
и порт *:80
жестко заcodeированы на определенном сайте ...
При доступе к IP-адресу сервера (http://123.123.123.123
) он совпадает с второй виртуальный хост. Я ожидал совпадения с первым (_default_
). Поскольку IP-адрес не определен конкретно ни в одном Vhost / ServerName
С этой другой конфигурацией, если я жестко заcodeирую порт 80 в обоих vhost, он правильно соответствует первому при доступе к серверу по IP-адресу http://123.123.123.123
и второму vhost при доступе по имени http://mysite.tld
Значит, первая конфигурация неверна? Я не могу использовать <VirtualHost _default_:*>
для соответствия http://123.123.123.123
?
Если я определил их оба как подстановочный порт:
и второй:
Тогда он также правильно соответствует IP на порте по умолчанию и моим сайтам на втором.
<VirtualHost _default_:*>
DocumentRoot /var/www/html/default
</VirtualHost>
<VirtualHost *:80>
ServerName mysite.tld
ServerAlias www.mysite.tld
DocumentRoot /var/www/html/mysite.tld
RewriteEngine On
RewriteCond %{HTTP_HOST} ^mysite.tld [NC]
RewriteRule ^(.*)$ https://www.mysite.tld%{REQUEST_URI} [R=301,L]
</VirtualHost>
<VirtualHost _default_:80>
DocumentRoot /var/www/html/default
</VirtualHost>
<VirtualHost *:80>
ServerName mysite.tld
ServerAlias www.mysite.tld
DocumentRoot /var/www/html/mysite.tld
RewriteEngine On
RewriteCond %{HTTP_HOST} ^mysite.tld [NC]
RewriteRule ^(.*)$ https://www.mysite.tld%{REQUEST_URI} [R=301,L]
</VirtualHost>
<VirtualHost _default_:*>
<VirtualHost *:*>